所以我正在努力用我擁有的一些資料來解決一個基本問題,我似乎無法繞過它。我有這個資料表
| 氨基酸 | 雙孢蘑菇 | 構巢曲霉 | 玉米雙極 |
|---|---|---|---|
| CYS | 0 | 0 | 0 |
| ASP | 0 | 0 | 0 |
| 葡萄糖 | 0 | 0 | 0 |
| PHE | 0 | 0 | 0 |
| 甘氨酸 | 0 | 0 | 0 |
| 他的 | 0 | 0 | 0 |
| ILE | 0 | 0 | 0 |
| 賴氨酸 | 10 | 7 | 16 |
| 低濃鈾 | 0 | 0 | 0 |
| 遇見 | 0 | 0 | 0 |
| ASN | 9 | 15 | 15 |
| 專業版 | 0 | 0 | 0 |
| GLN | 11 | 13 | 4 |
| 精氨酸 | 13 | 16 | 21 |
| SER | 11 | 13 | 8 |
| 心電圖 | 9 | 11 | 9 |
| 價值 | 0 | 0 | 0 |
| TRP | 8 | 7 | 6 |
| 酪氨酸 | 9 | 6 | 7 |
我一生無法弄清楚如何將其轉換為看起來像這樣的堆疊條形圖。
我需要顏色來代表不同的氨基酸。老實說,此時我已經醒了 30 個小時,因此我們將不勝感激。
我嘗試轉換為長格式,但是仍然會產生與以前相同的問題。當我使用默認繪圖設定時,這就是我得到的

uj5u.com熱心網友回復:
對于通過 pandas 堆疊的條形圖,每一列都將轉換為一層條形圖。資料框的索引將用作 x 軸。
在給定的資料框中,您似乎想要 x 軸的列。使用.T轉置資料框(交換行和列)將有所幫助。首先,您需要將氨基酸設定為索引。
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_html('https://stackoverflow.com/questions/71654486/stacked-bar-chart-with-multiple-variables-in-python')[0]
ax = df.set_index('Amino Acid').T.plot.bar(stacked=True, rot=0, cmap='tab20', figsize=(10, 7))
ax.legend(bbox_to_anchor=(1.01, 1.02), loc='upper left')
plt.tight_layout()
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/452288.html
標籤:Python matplotlib 条形图
下一篇:SQL臨時日期表生成
