2013-03-21 156 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