python - 如何在条形图上显示平均值
问题描述
我的图表有问题。这是代码:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('https://raw.githubusercontent.com/verticale3185/FINEL-PROJECT/main/cristiano_vs_messi.csv')
df.date = pd.to_datetime(df.date)
df['year'] = pd.DatetimeIndex(df['date']).year
df['year'].fillna(method = 'ffill', inplace = True)
df['year'] = df['year'].astype(int)
messi_df = df.loc[df.player == 'messi'].reset_index()
ronaldo_df = df.loc[df.player == 'ronaldo']
plt.suptitle('Goals Per Year For Fvery Player')
ronaldo_df.groupby(['year'])['player'].count().astype(int).plot(kind='bar',color='brown',label='Ronaldo',figsize=(15,5),width = 0.4)
messi_df.groupby(['year'])['player'].count().astype(int).plot(kind='bar',color='#14D622',label='Messi',figsize=(15,5),width = 0.2)
现在在这张图上,我想添加一条关于每个玩家的平均值的线。例如,如果梅西的进球平均值是一年的 32 个进球,我想要一条相同颜色的线来显示这一点。
解决方案
您可以使用 ax.axhline() 绘制一条水平线。
r = ronaldo_df.groupby(['year'])['player'].count().astype(int).plot(kind='bar',color='brown',label='Ronaldo',figsize=(15,5),width = 0.4)
m = messi_df.groupby(['year'])['player'].count().astype(int).plot(kind='bar',color='#14D622',label='Messi',figsize=(15,5),width = 0.2)
m.axhline(32, color='#14D622', lw=2)
r.axhline(28, color='brown', lw=2)
推荐阅读
- python - 作为 Kedro 节点的 Jupyter 笔记本
- sql - 保存命令以链接到表单上的网络按钮
- python - 从文件中提取浮点数
- elasticsearch - elasticsearch查找数组中给定数量项具有相同属性值的文档
- javascript - PDF 未显示完整的数据表按钮
- azure - “关闭” Azure App Service 和 Azure SQL Server 以降低成本
- javascript - 如何通过一键单击显示两个 Javascript 函数
- c++ - 骑士之旅启发式c ++
- python - Scipy.optimize.minimize 忽略边界
- python - 通过多个分隔符拆分字符串,忽略重复的分隔符