2016-08-10 8 views
0

私はパンダ散乱マトリックスのサブプロットを作成しようとしていますが、壁の一部にぶち当たっています。私は他の同様の質問を見回しましたが、答えのどれもそれを修正するように見えませんでした。今は2つのサブプロットを作成しようとしています。私はいくつかの点で2つずつ2つのサブプロットに移動するつもりですが、ちょうどそれを稼働させるために小さく始めることを試みています。 :ここに私のコードはここパンダスキャッタマトリックスを使ってサブプロットを作成するには

df_SH = pd.DataFrame({'East_Pacific_SH':DJF_con_SH_east_finite_all, 
        'West_Pacific_SH':DJF_con_SH_west_finite_all, 
        'Atl_SH':DJF_con_SH_atl_finite_all, 
        'Zonal_SH':DJF_con_SH_zonal_finite_all}) 

df_NH = pd.DataFrame({'East_Pacific_NH':DJF_con_NH_east_finite_all, 
        'West_Pacific_NH':DJF_con_NH_west_finite_all, 
        'Atl_NH':DJF_con_NH_atl_finite_all, 
        'Zonal_NH':DJF_con_NH_zonal_finite_all}) 

region_name=np.array(['East_Pacific_SH', 'West_Pacific_SH', 'Atl_SH', 'Zonal_SH']) 


plt.suptitle('Control Correlations') 
plt.subplot(211) 
axes = pd.scatter_matrix(df_SH, alpha=0.2, diagonal='kde') 
corr = df_SH.corr().as_matrix() 
for i, j in zip(*plt.np.triu_indices_from(axes, k=1)): 
    axes[j, i].annotate("%.3f" %corr[j,i], (.8, .9), xycoords='axes fraction', ha='center', va='center') 
plt.title('Control DJF SH', size = 15) 
#plt.savefig(filename='DJF_SH_Control_Scatter.pdf', ftype='pdf') 
#plt.show() 

plt.subplot(212) 
axes2 = pd.scatter_matrix(df_NH, alpha=0.2, diagonal='kde') 
corr2 = df_NH.corr().as_matrix() 
for i, j in zip(*plt.np.triu_indices_from(axes, k=1)): 
    axes2[j, i].annotate("%.3f" %corr2[j,i], (.8, .9), xycoords='axes fraction', ha='center', va='center') 
plt.title('Control DJF NH', size = 15) 
#plt.savefig(filename='DJF_NH_Control_Scatter.pdf', ftype='pdf') 
plt.show() 

結果は、現在、それは有望ax引数を持っているものの、ことを行いません

result

result

result

+0

あなたの質問は何ですか? – jlarsch

+0

私は言ったように、2つのパンダの散布行列のサブプロットを作成しようとしています。私のコードでは、私の結果は空白のボックス、下半分の1つの行列、および全行列の代わりに1つのセルだけの何らかの理由でタイトルを持つ完全な行列を生成します。私は両方の散布行列が互いに隣接して正しくプロットされるようにしたい –

+2

あなたが望むものがシェルフ関数を使って使用することはできません。現在、プロットする軸をpd.scatter_matrix()に指定していません。したがって、デフォルトでは新しい図形が作成され、サブプロットの行列が生成されます。軸を指定することはできますが、やや不思議なことに、その軸に属する全図形が消去されます。また、この説明を参照してください:http://stackoverflow.com/questions/20853179/purpose-of-ax-keyword-in-pandas-scatter-matrix-function 2番目のplt.subplot()コマンドは、効果的に最初の散布の底を消去しますマトリックス。これが代替案を探していれば幸いです... – jlarsch

答えて

0

pandasです

iris = pd.DataFrame.from_csv('iris.csv') 
chicks = pd.DataFrame.from_csv('ChickWeight.csv') 
import matplotlib.pyplot as plt 

fig, axs = plt.subplots(2) 

#iris.plot.scatter('PL', 'PW', ax = axs[0])   
#chicks.plot.scatter('Diet', 'Chick', ax = axs[1]) # This is fine. 

pd.scatter_matrix(iris, ax=axs[0], alpha=0.2) 
pd.scatter_matrix(chicks, ax=axs[1], alpha=0.2) # This clears axes unexpectedly. 

plt.savefig('two_pd_scatter.png') 

は警告を与え

/usr/local/lib/python2.7/site-packages/pandas/tools/plotting.py:3303:UserWarning:出力、複数のサブプロットに、数字が含まそれは、特に全体だけではなく、渡された斧をクリアだと注意を

をクリアされている軸を通過したUserWarning、「クリアされる」)

s。

私は散乱マトリックスの4つのタイトマージンの体系的な名前の数字を生成し、正しい場所と正しいタイトルでそれらの数字をインポートする文書(TeX、何でも)を設定することでこれを解決します。

関連する問題