我一直在研究传感器的温度绘图,想找到如何构建轮廓/热图或根据cmap编辑点的颜色?
我有以下非常基本的情节:
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示例,但我似乎无法正确编辑它以使用实际值而不是随机函数。有没有人有他们过去使用的替代解决方案/示例代码,我正在寻找什么?我对我找到的文档感到困惑。
谢谢!
答案 0 :(得分: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
的{{1}}参数