Cara memplot nilai daftar python dalam plot berbayang linier dengan gradien warna
Nov 13 2020
Saya tidak yakin apa yang harus disebut plot di bawah ini. Plot Pita 1D?
Pada dasarnya, saya ingin membuat sesuatu seperti ini (plot linier dengan kotak berwarna gradien berdasarkan kelimpahan) dalam daftar. Petunjuk apa pun tentang nama plot semacam itu atau cara memvisualisasikan kelimpahan dalam daftar akan sangat membantu.
Bonus
Jika Anda memiliki pemikiran tentang cara menambahkan teks di atas plot (dari daftar atau objek kamus yang berbeda) seperti gambar yang ditampilkan yang juga akan dihargai
Jawaban
3 xjcl Nov 13 2020 at 05:47
Inilah pendekatan saya berdasarkan 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()
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'