【问题标题】:Python Matplotlib point colourPython Matplotlib 点颜色
【发布时间】:2013-03-11 09:36:37
【问题描述】:

我一直在研究使用传感器绘制的温度图,并想了解如何构建等高线/热图或根据 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 来显示热半径。可以在图像上绘制吗? 我查看了This 示例,但我似乎无法正确编辑它以使用实际值而不是随机函数。有没有人有他们过去使用过的替代解决方案/示例代码来满足我的需求?我对我找到的文档有点困惑。

谢谢!

【问题讨论】:

    标签: python matplotlib heatmap


    【解决方案1】:

    这就是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 不同,并且大小比例不同。如果你想改变点的颜色,你可能想使用scattercmap参数

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      相关资源
      最近更新 更多