Como plotar valores de lista python em um gráfico sombreado linear com gradiente de cor
Nov 13 2020
Não tenho certeza de como chamar o enredo abaixo. Um gráfico de fita 1D?
Basicamente, eu quero criar algo assim (um gráfico linear com caixas coloridas gradientes por abundância) em uma lista. Qualquer pista sobre o nome de tal plotagem ou como visualizar a abundância em uma lista seria útil.
Bônus
Se você tem ideias sobre como adicionar texto acima do gráfico (de uma lista ou objeto de dicionário diferente), como a imagem mostrada, isso também seria apreciado
Respostas
3 xjcl Nov 13 2020 at 05:47
Aqui está minha abordagem baseada em pcolor:
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()
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino