此问题已在此处有答案:
Restrict axis to integer tick locations(4个答案)
3年前关闭。
我正在可视化的数据只有在整数的情况下才有意义。
也就是说,0.2的记录对于我正在分析的信息的上下文没有意义。
如何强制matplotlib在Y轴上只使用整数。即1、100、5等?而不是0.1、0.2等
for a in account_list:
f = plt.figure()
f.set_figheight(20)
f.set_figwidth(20)
f.sharex = True
f.sharey=True
left = 0.125 # the left side of the subplots of the figure
right = 0.9 # the right side of the subplots of the figure
bottom = 0.1 # the bottom of the subplots of the figure
top = 0.9 # the top of the subplots of the figure
wspace = 0.2 # the amount of width reserved for blank space between subplots
hspace = .8 # the amount of height reserved for white space between subplots
subplots_adjust(left=left, right=right, bottom=bottom, top=top, wspace=wspace, hspace=hspace)
count = 1
for h in headings:
sorted_data[sorted_data.account == a].ix[0:,['month_date',h]].plot(ax=f.add_subplot(7,3,count),legend=True,subplots=True,x='month_date',y=h)
#set bottom Y axis limit to 0 and change number format to 1 dec place.
axis_data = f.gca()
axis_data.set_ylim(bottom=0.)
from matplotlib.ticker import FormatStrFormatter
axis_data.yaxis.set_major_formatter(FormatStrFormatter('%.0f'))
#This was meant to set Y axis to integer???
y_formatter = matplotlib.ticker.ScalarFormatter(useOffset=False)
axis_data.yaxis.set_major_formatter(y_formatter)
import matplotlib.patches as mpatches
legend_name = mpatches.Patch(color='none', label=h)
plt.xlabel("")
ppl.legend(handles=[legend_name],bbox_to_anchor=(0.,1.2,1.0,.10), loc="center",ncol=2, mode="expand", borderaxespad=0.)
count = count + 1
savefig(a + '.png', bbox_inches='tight')
4条答案
按热度按时间mbzjlibv1#
最灵活的方法是将
integer=True
指定为默认刻度定位器(MaxNLocator
),做类似的事情:或者,您可以按照Marcin和Joel的建议手动设置刻度位置/标签(或使用
MultipleLocator
)。这样做的缺点是,你需要找出什么样的刻度位置是有意义的,而不是让matplotlib根据轴限制来选择一个合理的整数刻度间隔。bvpmtnay2#
另一种强制执行整数刻度的方法是使用
pyplot.locator_params
。使用与公认答案中几乎相同的示例:
zujrkrfu3#
如果只是要更改y轴,一个简单的方法是确定需要更改的刻度:
将在0、1、4和6处放置刻度。更一般地说
将把第二个列表的标签放在第一个列表中的位置。如果标签将是y值,最好使用
py.yticks(tickpos,tickpos)
版本,以确保无论何时更改刻度的位置,标签都会得到相同的更改。更一般地说,Kington的答案将让你告诉pylab在y轴上只显示整数,但让它选择刻度的位置。
w1e3prcc4#
您可以按如下方式修改记号标签/编号。这只是一个例子,因为你没有提供任何代码,你有,所以不确定它是否适用于你或没有。
不修改x轴:
修改后: