2013-03-21 13 views
5

Ich habe mir das Temperaturplotten mit Sensoren angeschaut und wollte herausfinden, wie ich entweder eine Kontur-/Heat Map erstellen oder die Farben meiner Punkte basierend auf einer cmap bearbeiten kann?Python Matplotlib Punktfarbe

Ich habe folgende sehr grundlegende Handlung:

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import numpy as np 
from pylab import * 

figure(figsize=(15, 8)) 
# use ginput to select markers for the sensors 
matplotlib.pyplot.hot() 

markers = [(269, 792, 0.65), (1661, 800, 0.5), (1017, 457, 0.8)] 
x,y,t = zip(*markers) 

img = mpimg.imread('floor.png') 
imgplot = plt.imshow(img, cmap=cm.hot) 
plot(x, y, 'h', c=t, ms=15) 

colorbar() 
show() 

Der dritte Wert in Marker hoffentlich eine Punktfarbe sein sollte. Wenn ich den Plot mache, färbt er jeden Punkt auf die gleiche Weise mit dem ersten Wert in Markern. Ist es möglich, die cmap der Punkte so zu setzen, dass ich heiße verwenden und sie auf eine tatsächliche Temperatur beziehen kann? Die aktuellen Punkte zeichnen sich in einer hellpurpur/lila Farbe ab, die vermutlich die Standard-cmap ist. Ich sehe cmap scheint kein gültiger Wert für Plot zu sein, also bin ich mir nicht sicher, wo ich das spezifizieren würde.

Die alternative Lösung, die ich wirklich gerne ausprobieren möchte, wäre die Verwendung von Konturen oder histogram2d, um den Wärmestrahlungsradius anzuzeigen. Ist das möglich über ein Bild zu plotten? Ich habe mich This Beispiel angesehen, aber ich kann nicht scheinen, es richtig zu bearbeiten, um tatsächliche Werte anstelle der zufälligen Funktion zu verwenden. Hat jemand eine alternative Lösung/Beispielcode, den sie in der Vergangenheit verwendet haben, der das tut, wonach ich suche? Ich bin ein wenig verwirrt mit der Dokumentation, die ich gefunden habe.

Danke!

Antwort

2

Dies ist, was die scatter plot ist für:

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import numpy as np 
from pylab import * 

figure(figsize=(15, 8)) 
# use ginput to select markers for the sensors 
matplotlib.pyplot.hot() 

markers = [(269, 792, 0.65), (1661, 800, 0.5), (1017, 457, 0.8)] 
x,y,t = zip(*markers) 

img = mpimg.imread('floor.png') 
imgplot = plt.imshow(img, cmap=cm.hot) 
scatter(x, y, marker='h', c=t, s=150) 

colorbar() 
show() 

Beachten Sie, dass die Argumente unterscheiden sich von plot und dass die Größenskala unterschiedlich. Wenn Sie die Farbe der Punkte ändern möchten, möchten Sie vielleicht das cmap Argument von scatter

+0

Ah die Argumente haben mich verwirrt - danke David – Ollie