2013-03-21 154 views
5

我一直在尋找溫度繪圖與傳感器,並希望找到我如何可以構建一個輪廓/熱圖或編輯我的點的顏色基於cmap?Python Matplotlib點顏色

我有以下幾點很基本情節:

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() 

中標記的第3個值應該有希望是一個點的色彩。但是當我繪製圖時,它使用標記中的第一個值以相同的方式着色每個點。是否可以設置點的cmap,以便我可以使用熱點並將其與實際溫度相關聯?目前的點是繪製在淡紫色/淡紫色,我認爲是默認的cmap。我看到cmap似乎不是一個有效的劇情值,所以我不確定我會在哪裏指定。

我真的想嘗試並找出替代解決方案,而不是使用輪廓或histogram2d來顯示熱半徑。有可能在圖像上繪圖嗎? 我看了一下This的例子,但我似乎無法正確編輯它以使用實際值而不是隨機函數。有沒有人有他們在過去使用的替代解決方案/示例代碼,以滿足我的需求?我對我發現的文檔有些困惑。

謝謝!

回答

2

這就是scatter plot是:

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() 

注意的參數是不同plot和大小規模不同。如果你想改變點的顏色,你可能想要使用cmap的參數scatter

+0

啊論據讓我感到困惑 - 謝謝大衛 – Ollie 2013-03-22 11:04:17