首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用列表值创建颜色渐变1D热图(带状图)?

如何使用列表值创建颜色渐变1D热图(带状图)?
EN

Stack Overflow用户
提问于 2020-11-13 02:49:45
回答 1查看 169关注 0票数 2

我甚至不确定下面的情节该叫什么。一维带状图?

基本上,我想在列表中创建类似这样的东西(一个带有按丰富度计算的渐变色框的线性图)。任何关于这样一个情节的名称或如何在列表中可视化丰富度的线索都将是有帮助的。

奖金

如果您有关于如何在绘图上方添加文本(来自不同的列表或字典对象)的想法,如图所示,也将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-13 06:47:08

以下是我基于pcolor的方法

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

labels = ['All cellular component', 'extracellular region', 'plasm membrane',
          'synapse', 'cell junction', 'cell protection', 'cytoplasmic vesicle',
          'endosome', 'vacuole', 'golgi apparatus', 'endoplasmic reticulum',
          'cytosol', 'mitochondrion', 'nucleus', 'chromosome', 'cytoskeleton',
          'protein-containing complex', 'other components']

# Dummy values based on word length
values = np.array([[len(l) for l in labels]]) - min(map(len, labels))

fig, ax = plt.subplots()
im = ax.pcolor(np.arange(len(labels)+1) - .5, [0, 1],  # center xticks like imshow
               values, cmap='Blues', edgecolors='grey', linewidths=1)
for spine in ax.spines.values():
    spine.set_edgecolor('grey')

ax.set_xticklabels(labels)
ax.set_xticks( np.arange(len(labels)) )  # Show all data
ax.set_yticks([])  # No Y axis

ax.xaxis.tick_top()  # Put labels on top
plt.xticks(rotation=45, ha="left", rotation_mode="anchor")  # Rotate labels 45 deg
plt.axis('scaled')  # square pixels
ax.tick_params(axis='both', which='both', length=0)  # Hide ticks

fig.tight_layout()
plt.show()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64809972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档