[英]How to plot average line for a month in a Python for loop?
我有看起来像这样的代码:
for _, d in Country_sim_count.set_index('Week').groupby('Home_Country'):
fig, ax = plt.subplots()
d['SIM_total'].plot()
plt.axhline(y=d['SIM_total'].mean(), color='r', linestyle='--') #the line I would like to alter
plt.xticks(rotation=90)
plt.title(f"Weekly Sim Count for {d['Home_Country'].iat[0]}")
plt.xlabel('Week')
a = '2020-01-13' #Key dates area
b = '2020-02-10'
plt.axvspan(a, b, color='gray', alpha=0.2, lw=0)
plt.legend()
#plt.savefig(f"{d['Home_Country'].iat[0]}_plot.png")
plt.show()
dataframe 包含不同的月份,但是在第 4 行我想 plot 一条红线,它将显示每个国家/地区仅计算 2 月的平均值,而不是计算所有月份组合的平均值。 循环中每个国家/地区的 2 月平均值会有所不同。 目前我的 plot 看起来像这样:
红线的值是 1 月至 5 月的平均值,但我希望红线值显示整个 2 月的平均值。
有没有办法我可以做到这一点?
也许您可以尝试在括号内包含一个条件?
plt.axhline(y=d[d['SIM_total'] == 'February'].mean(), color='r', linestyle='--')
我希望它有帮助!
编辑:
在那种情况下,我认为最好不要将“周”设置为索引。
你可能不是很漂亮,你可以使用下面的代码。
feb_mean = d[d['Week'] == 'February']['SIM_total'].mean()
plt.axhline(y=feb_mean, color='r', linestyle='--')
让我知道这是否适合您!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.