カテゴリの行と列のラベルを持つpandas DataFrameの散布図をmatplotlib
で作成したいと考えています。サンプルDataFrameは次のようになります。パンタグラフをプロットするpandas 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