如何防止matplotlib.pyplot仅显示数据存在的图形部分?

时间:2017-04-25 23:41:59

标签: python-3.x matplotlib graph

我试图在y轴上从整个范围(10)显示我的图形,但是最低的y值是4,最高的是7.如何使它显示范围内所有点的y轴而不仅仅是哪些有价值?

我的脚本是:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt

#X axis data
dates = ['03/04/2017', '04/04/2017', '05/04/2017', '06/04/2017', '07/04/2017', '08/04/2017', '09/04/2017',
         '10/04/2017', '11/04/2017', '12/04/2017', '13/04/2017', '14/04/2017', '15/04/2017', '16/04/2017']

#Y axis data
occurence_number = [7,5,4,6,7,6,6,4,5,7,7,6,7,7]

#formatting the date information
x = [dt.datetime.strptime(d, '%d/%m/%Y').date() for d in dates]
y = occurence_number

#labeling the x and y axis
plt.xlabel('Date')
plt.ylabel('Instances of Behavior')

#here I tried to set the yticks in an attempt to show them all
plt.yticks(range(10))

#formating y axis values for matplotlib
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())

plt.plot(x,y)
plt.gcf().autofmt_xdate()
plt.show()  

我试过用:

plt.set_autocale_on(False)

导致错误:

"'module' object has no attribute 'set_autocale_on'"

我发现的其他事情我不明白如何实施。图表当前显示正确的值,但我想“缩放”,以便它仍然显示0 - > 4和7 - > 10的y标签,其中没有值。

1 个答案:

答案 0 :(得分:0)

我能够使用@Paul提供的答案来解决问题。

plt.gca().set_ylim(0,10)