我想使用matplotlib
來生成帶有分類行和列標籤的pandas DataFrame的散點圖。示例DataFrame如下所示:使用分類標記的行/列繪製熊貓DataFrame的散點圖
import pandas as pd
df = pd.DataFrame({"a": [1,2], "b": [3,4]}, index=["c","d"])
# a b
#c 1 2
#d 3 4
標記大小是各個DataFrame值的函數。到目前爲止,我想出了一個尷尬的解決方案,本質上列舉的行和列,繪製數據,然後重建標籤:
flat = df.reset_index(drop=True).T.reset_index(drop=True).T.stack().reset_index()
# level_0 level_1 0
#0 0 0 1
#1 0 1 2
#2 1 0 3
#3 1 1 4
flat.plot(kind='scatter', x='level_0', y='level_1', s=100*flat[0])
plt.xticks(range(df.shape[1]), df.columns)
plt.yticks(range(df.shape[0]), df.index)
plt.show()
現在,問題:是否有更直觀,更集成的方式來產生散點圖,理想情況下不需要拆分數據和元數據?
,我不認爲我們可以用非數值數據繪製。 AFAIK你將不得不單獨設置刻度... – MaxU
我想這個問題轉化爲*「爲什麼沒有庫實現我的自定義繪圖的願望功能呢?」*。 – ImportanceOfBeingErnest