所以我试图创建一个大熊猫散射矩阵的子图,但是碰到了一点墙。我已经环顾了其他类似的问题,但没有一个答案似乎解决了。现在我只是想创建一个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()
以下是结果
答案 0 :(得分:1)
pandas
目前没有做到这一点,尽管它有一个很有希望的ax
参数:
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)
请注意,它专门清除整个数字,而不仅仅是传递的轴。
我通过为散点矩阵生成四个紧密边缘,系统命名的数字并设置一个文档(TeX,无论如何)来在正确的位置和正确的标题中导入这些数字来解决这个问题。