如何仅从Python的Matplotlib图中删除y轴的顶值?

时间:2015-09-18 10:05:06

标签: python matplotlib

我正在尝试使用Matplotlib绘制一些数据。我的代码工作正常,但我的图标题与y轴刻度的最高值之​​间存在冲突。所以我的问题是,是否有人知道如何仅从y轴移除顶部值,同时保持关于绘图的其他所有内容相同?

我的代码

cyp_minus=pandas.read_csv(cyp_minus_file,sep='\t')
cyp_plus=pandas.read_csv(cyp_plus_file,sep='\t')
plt.figure(9)
plt.plot(cyp_minus['Dose']*1000,cyp_minus['atRA_minus_tet'],label='Control')
plt.plot(cyp_plus['Dose']*1000,cyp_plus['Cyp26(atRA_plus_tet)'],label='RARa Overexpression')
x=plt.xlabel('[atRA] (nM)',fontsize=15)
plt.ylabel('[Cyp26A1]/beta-actin',fontsize=15)
plt.title('Effect of RARa overexpression on Cyp26A1 dose-response curve',fontsize=15)
plt.legend(loc=2,fontsize=15)
plt.rc('xtick', labelsize=20)
plt.rc('ytick', labelsize=20)
plt.savefig('Cyp26A1 DR-curve for presentation.tiff',dpi=500,bbox_extra_artists=[x], bbox_inches='tight')

由于

2 个答案:

答案 0 :(得分:3)

您可以使标题上升,使其与y最高值不重叠:

plt.title('Effect of RARa overexpression on Cyp26A1 dose-response curve',fontsize=15, y=1.5) # Change y value accordinly

答案 1 :(得分:3)

作为已接受答案的替代方案,如果您确实想要从刻度标签中删除文本,可以这样做:

yticks = plt.gca().get_yticks().tolist() # get list of ticks
yticks[-1] = ''                          # set last tick to empty string
ax.set_yticklabels(yticks)               # set the labels