5

我一直在使用传感器查看温度绘图,并想了解如何构建轮廓/热图或根据 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()

标记中的第三个值应该是点颜色。但是,当我制作绘图时,它使用标记中的第一个值以相同的方式为每个点着色。是否可以设置点的 cmap,以便我可以使用 hot 并将其与实际温度相关联?当前点以浅紫色/淡紫色绘制,我认为这是默认的 cmap。我看到 cmap 似乎不是 plot 的有效值,所以我不确定我会在哪里指定。

我真正想尝试找出的替代解决方案是使用轮廓或 histogram2d 来显示热半径。可以在图像上绘制吗?我看了一下这个例子,但我似乎无法正确编辑它以使用实际值而不是随机函数。有没有人有他们过去使用过的替代解决方案/示例代码来满足我的需求?我对我找到的文档有点困惑。

谢谢!

4

1 回答 1

2

这就是scatter情节的目的:

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

于 2013-03-21T18:17:43.047 回答