我已经做了一个线图,现在我想在图中的线图中显示两条线之间的差异/差距的值。
我不明白如何显示两行之间差距值。
预期结果:
我的结果:
数据框:
我的代码:
import seaborn as sns
sns.set()
df_MFgrade4.plot(figsize=(15,8), marker='o', color=('#E8743B', '#5bc0de'))
plt.xlabel("Year", fontsize=14)
plt.ylabel("Average Mathematics Scale Score", fontsize=14)
plt.xticks(df_grade4["Year"].astype(int), size=13)
plt.yticks(df1, size=13)
plt.legend(fontsize=15)
plt.show()
2条答案
按热度按时间rsl1atfo1#
正如注解中提到的,您可以使用
matplotlib.pyplot.fill_between
来获得行之间的填充。您还可以使用matplotlib.pyplot.text
添加所需的标签。因为你没有发布任何代码,这里是一个通用的例子来说明。x
轴上方的标签表示每个点的值之间的差异。编辑
因为你来自一个
pandas
DataFrame
,为了实现你需要的更细粒度的绘图控制,可能有必要,或者至少是方便的,将DataFrame
的列转换为列表,并使用上面的方法绘图,例如。如果将此应用于不同的数据集,则可能需要对标签的位置进行调整。
lnvxswe22#
https://stackoverflow.com/a/54065121/12201993
答案同上,如果你遇到这个问题-
TypeError:alpha必须是float或None
当包更新时,将plt.fill_between中的alpha更改为float,例如:
plt.fill_between(year, male, female, color="grey", alpha=0.3)