我想使用pyplot填充简单折线图下面的区域。我知道" fill_between",但我无法将其用于我的代码,主要是因为我无法定义x和y,如
fill_between(x,y)
我的代码的线图部分如下所示。我也认为我的ax.set_xtick标签效率很低,因此任何提示都会受到赞赏。
N = 31
ind = np.arange(N)
fig, ax = plt.subplots(facecolor='white')
ax.line = plot(days_len) #this is a list of 31 numbers e.g. 31,876, one for each day of July
ax.set_ylabel('Rides', fontsize = 22)
ax.set_xlabel('Day', fontsize = 22)
ax.set_xticks(ind)
ax.set_yticks(np.arange(0,50000,5000))
ax.set_xticklabels(('01', '02', '03', '04', '05', '06', '07',
'08','09','10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20',
'21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'))
#for chart styling purposes
ax.spines["top"].set_visible(False)
ax.spines["right"].set_visible(False)
ax.spines["left"].set_color('red')
ax.spines["bottom"].set_color('red')
#returns only ticks for bottom and left of x and y axes
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
ax.set_yticks(ax.get_yticks()[1:]) #to remove "0" at origin of y-axis
axes(ax).yaxis.grid(True, color='red') #just y-axis gridlines
提前感谢您的任何帮助。
答案 0 :(得分:0)
对于fill_between
,x
是您希望填充的x值集合。 y1
和y2
是您要填充的曲线。默认情况下,y2
是x轴。由于您正在绘制31个值,因此只需使用range(31)
作为x
。
ax.fill_between(range(31), days_len)
对于ticklabels,我会使用range
生成数字,然后使用列表推导将它们转换为字符串(使用zfill
字符串方法添加前导零)。
ticklabels = [str(date).zfill(2) for date in range(1, 32)]
ax.set_xticklabels(ticklabels)