我想创建一个像this图像上半部分的可视化。基本上,热图是每个时间点都有固定数量的组件,但这些组件通过标签(我可以提供)锚定到y轴,而不是热像图矩阵中的第一个索引。
我知道pcolormesh,但这似乎没有给我我寻求的y轴功能。
最后,我也对R中的解决方案持开放态度,尽管Python选项更适合
。答案 0 :(得分: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')
给出: