变y轴热图

2024-04-20 04:56:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我知道pcolormesh,但这似乎没有给我提供我想要的y轴功能。在

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


Tags: 图像功能数量可视化时间组件矩阵标签
1条回答
网友
1楼 · 发布于 2024-04-20 04:56:11

我不完全确定我是否理解你的意思,但通过看你链接的图片,你最好自己动手解决。在

首先,您需要用热图值创建一个数组,这样每个标签就有一行,每个时间段有一列。你用nan填充数组,然后把你拥有的热图值写到正确的位置。在

然后您需要一点技巧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')

给出:

enter image description here

相关问题 更多 >