【问题标题】:Heatmap with varying y axis具有不同 y 轴的热图
【发布时间】:2014-06-27 20:09:18
【问题描述】:

我想创建一个类似于this 图像上部的可视化。本质上,一个热图,其中每个时间点都有固定数量的组件,但这些组件通过标签(我可以提供)而不是通过它们在热图矩阵中的第一个索引锚定到 y 轴。

我知道 pcolormesh,但这似乎没有给我我所寻求的 y 轴功能。

最后,我也对 R 中的解决方案持开放态度,尽管 Python 选项会非常更可取。

【问题讨论】:

  • 用一张大图来做,用nans填充非彩色区域

标签: python matplotlib plot heatmap


【解决方案1】:

我不完全确定我是否正确理解了您的意思,但是通过查看您链接的图片,您可能最好使用自己的解决方案。

首先,您需要创建一个包含热图值的数组,以便每个标签都有一行,每个时间段有一个列。你用 nans 填充数组,然后将你拥有的任何热图值写入正确的位置。

然后你需要欺骗imshow 以正确缩放和显示图像。

例如:

# create some masked data
a=cumsum(random.random((20,200)), axis=0)
X,Y=meshgrid(arange(a.shape[1]),arange(a.shape[0]))
a[Y<15*sin(X/50.)]=nan
a[Y>10+15*sin(X/50.)]=nan

# draw the image along with some curves
imshow(a,interpolation='nearest',origin='lower',extent=[-2,2,0,3])
xd = linspace(-2, 2, 200)
yd = 1 + .1 * cumsum(random.random(200)-.5) 
plot(xd, yd,'w',linewidth=3)
plot(xd, yd,'k',linewidth=1)
axis('normal')

给予:

【讨论】:

  • 谢谢,经过一些小的调整,我已经设法让它完全满足我的需要!
猜你喜欢
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多