Python matplotlib - 设置x轴编号

时间:2017-10-23 09:29:49

标签: python matplotlib graph

我可以设置我的图形的限制,但由于某种原因,x轴确实希望第一个刻度标记被标记为0,无论我的xlim值设置为什么。 y轴具有可理解的编号并且看起来很好(标签上为3.2,整个轴为1e7)。例如,在该图表上,x轴从3646开始并在3654结束(我设置w / xlim),但x轴刻度标记为0(对应于3646)到8(对应于3654)。如何才能使用3646, 3647, 3648, ...等或至少更直观的内容,例如46, 47, 48, ...而不是0, 1, 2

Chart1

如果不这样,也许我可以像开始和结束标记一样标记,或者只是开始和结束标记以及像50这样的圆形数字。我明白我可以明确地给出刻度标记的值,但我有每0.01的值老实说,应该有一种已经内置的方法来在刻度线上显示合理的值(并且我试图避免明确告诉它如何在我将循环的每个图表上执行此操作)。这似乎是一个节省空间的“功能”,是在x轴上使用大数字时添加的,我希望有一种方法可以将其关闭。

以下是与此图表相关的代码部分(请注意,这是在一个更大的循环中,但我只运行了1x,同时使一切正常工作,因此我明确声明了xlim和ylim值):

if colorcount == len(colorset):
    colorcount = 0

fig = plt.figure()

for y in xrange(0, len(filesbywn[x])):
    if colorcount == len(colorset):
        colorcount = 0
    thislabel = str(altmasterlist[y])+" km Alt"
    plt.plot(filesbywn[x][y][0], filesbywn[x][y][1], lw=1, label=thislabel, color=colorset[colorcount])
    colorcount += 1

plt.xlabel('Wavenumber (cm-1)')
xlim_min = 3650.8
xlim_max = 3651.1
plt.xlim([xlim_min, xlim_max])
plt.ylabel('Radiance')
ylim_min = 0
ylim_max = 0
if ylim_min != 0 or ylim_max != 0:
    plt.ylim([ylim_min, ylim_max])
if xlim_min == 0 or xlim_max == 0:
    plt.title("uW Range "+str( wnums_min[x] )+"-"+str( wnums[x] ))
else:
    plt.title("uW Range "+str( xlim_min )+"-"+str( xlim_max ))
linefinder_fullchart_filename = "linefinder_fullchart_"+ printindex +"_"+str(int( highlight_f))+"_zoom"+str(xlim_min)+"-"+str(xlim_max)+"_"+str(ylim_min)+"-"+str(ylim_max) 
plt.savefig(os.path.join( outputfolder, linefinder_fullchart_filename +".png" ), dpi=96)
plt.close(fig)

也可以非常感谢提示或其他规避这一点的方法!

0 个答案:

没有答案