我通过使用Pandas DataFrame绘制多个子图来生成下图:
您会注意到左侧的两个子图没有任何x刻度或x标签。
这是我用来绘制图形的代码:
plt.suptitle(suptitle,fontsize=fs+6)
ax1 = fig.add_subplot(gs[0:8,0])
title = 'e1 on Object a'
plt.title('Bias vs Separation For ' + title,fontsize=fs)
plt.ylim([(min_mean - 2*min_s_mean)*min_offset,(max_mean + max_s_mean)*max_offset])
plt.xlabel('Separation (arcsec)',fontsize=fs)
plt.ylabel('Residual',fontsize=fs)
f_m_e1_a = format_df(means_e1_a,x_min,x_max,means_e1_a.index)
f_s_m_e1_a = format_df(s_means_e1_a,x_min,x_max,s_means_e1_a.index)
plt.legend(loc=0,prop={'size':leg_fs})
ax1p = f_m_e1_a.T.plot(ax=ax1,style=['k--o','b--o','g--o'],yerr=f_s_m_e1_a.T)
ax2 = fig.add_subplot(gs[11:19,0])
title = 'e1 on Object b'
plt.title('Bias vs Separation For ' + title,fontsize=fs)
plt.ylim([(min_mean - 2*min_s_mean)*min_offset,(max_mean + max_s_mean)*max_offset])
plt.xlabel('Separation (arcsec)',fontsize=fs)
plt.ylabel('Residual',fontsize=fs)
f_m_e1_b = format_df(means_e1_b,x_min,x_max,means_e1_b.index)
f_s_m_e1_b = format_df(s_means_e1_b,x_min,x_max,s_means_e1_b.index)
plt.legend(loc=0,prop={'size':leg_fs})
ax2p = f_m_e1_b.T.plot(ax=ax2,style=['k--o','b--o','g--o'],yerr=f_s_m_e1_b.T)
ax3 = fig.add_subplot(gs[0:8,1])
title = 'e2 on Object a'
plt.title('Bias vs Separation For ' + title,fontsize=fs)
plt.ylim([(min_mean - 2*min_s_mean)*min_offset,(max_mean + max_s_mean)*max_offset])
plt.xlabel('Separation (arcsec)',fontsize=fs)
plt.ylabel('Residual',fontsize=fs)
f_m_e2_a = format_df(means_e2_a,x_min,x_max,means_e2_a.index)
f_s_m_e2_a = format_df(s_means_e2_a,x_min,x_max,means_e2_a.index)
plt.legend(loc=0,prop={'size':leg_fs})
ax3p = f_m_e2_a.T.plot(ax=ax3,style=['k--o','b--o','g--o'],yerr=f_s_m_e2_a.T)
ax4 = fig.add_subplot(gs[11:19,1])
title = 'e2 on Object b'
plt.title('Bias vs Separation For ' + title,fontsize=fs)
plt.ylim([(min_mean - 2*min_s_mean)*min_offset,(max_mean + max_s_mean)*max_offset])
plt.xlabel('Separation (arcsec)',fontsize=fs)
plt.ylabel('Residual',fontsize=fs)
f_m_e2_b = format_df(means_e2_b,x_min,x_max,means_e2_b.index)
f_s_m_e2_b = format_df(s_means_e2_b,x_min,x_max,s_means_e2_b.index)
plt.legend(loc=0,prop={'size':leg_fs})
ax4p = f_m_e2_b.T.plot(ax=ax4,style=['k--o','b--o','g--o'],yerr=f_s_m_e2_b.T)
我为所有情节做了同样的事情,但为什么左边的两个没有显示x-ticks和x-labels?
我实例化一个gridspec对象以供使用和图,但这就是全部。
它也没有将样式设置为我指定的样式,这是当前问题的外部。