我可以使用分配给重量和日期的默认值创建一个图形(见下图),但我想使用自定义范围作为重量。
因此,不是使用数组中的最小值/最大值,而是希望范围为175-190,间隔为.05。
我尝试了很多东西,但通常会发生的事情是两件事中的一件......
1。)所有重量范围都被卡在左上角并显示在彼此之上
2。)y轴上没有显示任何内容,也没有绘制点。
def displayplot(date, weight):
fig, ax = plt.subplots()
#Convert data types in more usuable types
dates = mdates.num2date(mdates.datestr2num(date))
x = np.array(dates)
y = np.array(weight).astype(np.float)
#set plot points and formatting
plt.plot(dates, weight, color='k', marker='o', label='January', linewidth=1,
markevery=1,markerfacecolor='blue')
#set limits
#ax.set_ylim(175,190)
# rotate and align the tick labels so they look better
fig.autofmt_xdate()
#Labels
ax.set_title('weight tracking - 2018')
plt.xlabel('Date')
plt.ylabel('Weight')
plt.legend()
#Show figure
plt.show(fig)
更新1:
def displayplot(date, weight):
fig, ax = plt.subplots()
#Convert data types in more usuable types
dates = mdates.num2date(mdates.datestr2num(date))
x = np.array(dates)
y = np.array(weight).astype(np.float)
rng = np.arange(175, 190.5, 0.5)
#set plot points and formatting
plt.plot(dates, weight, color='k', marker='o', label='January', linewidth=1,
markevery=1,markerfacecolor='blue')
#set limits
ax.set_yticks(rng)
# rotate and align the tick labels so they look better
fig.autofmt_xdate()
更新2:版本2.1.2
答案 0 :(得分:0)
您可以使用yticks
设置ax.set_yticks(rng)
。您可以使用numpy.arange
创建rng
。在您的情况下rng = np.arange(175, 190.5, 0.5)
。
答案 1 :(得分:0)
您可以使用ax.set_yticklabels()显示y_ticks。你想确保那些属于y_lim。
def displayplot(日期,重量): fig,ax = plt.subplots()
#Convert data types in more usuable types
#dates = mdates.num2date(mdates.datestr2num(date))
dates = date
x = np.array(dates)
y = np.array(weight).astype(np.float)
#set plot points and formatting
plt.plot(dates, weight, color='k', marker='o', label='January', linewidth=1,
markevery=1,markerfacecolor='blue')
#set limits
#ax.set_ylim(175,190)
y_ticks = np.arange(175, 190, 0.5)
ax.set_ylim([y_ticks[0] - 0.5, y_ticks[-1] + 0.5])
ax.set_yticklabels(y_ticks)
# rotate and align the tick labels so they look better
fig.autofmt_xdate()
#Labels
ax.set_title('weight tracking - 2018')
plt.xlabel('Date')
plt.ylabel('Weight')
plt.legend()
#Show figure
plt.show(fig)
我生成了一些假数据来显示它的样子
date = np.arange(30)
weight = 180 + np.random.normal(5, size=30)
displayplot(date, weight)