gpt4 book ai didi

python - 使用子图绘制水平线 Matplotlib

转载 作者:行者123 更新时间:2023-12-01 01:54:01 27 4
gpt4 key购买 nike

我查看了以下线程,它有所帮助,但我想知道是否有人以稍微不同的方式尝试过。

Plotting a horizontal line on multiple subplots in python using pyplot

下面是数据的样子,以便您可以测试(如有必要)= ctr_df

数据片段如下:

Date        LAL_3%      Core        Page_1      Homepage
4/06/2017 0.288142 0.947993 1.174094 0.26622
11/06/2017 0.270052 0.919648 0.615855 0.206031
18/06/2017 0.260225 0.941274 0.550324 0.230775
25/06/2017 0.345208 0.867322 0.373997 0.205385
2/07/2017 0.318578 1.687208 0.420367 0.235314
9/07/2017 0.45653 1.227451 0.71128 0.455536
16/07/2017 0.543492 1.086996 0.415289 0.44763
23/07/2017 0.503581 1.010364 0.642291 0.317182
30/07/2017 0.373479 0.918334 0.580428 0.282783

我的代码如下:

ctr_df.plot(kind='bar', sharey=False, sharex=True, subplots=True, 
legend=True, width=0.8, layout=(2,2), fontsize=12, grid=True, figsize=(20,12), colormap='Dark2')

plt.axhline(0.3, color='k', linestyle='--')
plt.tight_layout()
plt.show()

这完全返回了我想要的内容(按观众、按周列出的各个子图),但是,axhline仅出现在最后情节上,而不是全部出现。

可以使用我的方法来完成此操作吗?我找不到任何可以表明它可以的东西。如果这种方法无法实现这一点,那也没关系,我可以使用上面的线程来帮助修改我的代码。

谢谢

最佳答案

您使用 pandas 绘图函数,这些函数是为了方便而构建的,而不是完整的 matplotlib 支持。 Afaik,没有办法在所有子图中直接构造水平线。回到 matplotlib:

from matplotlib import pyplot as plt
import pandas as pd

ctr_df = pd.read_csv("test.csv", delim_whitespace = True,index_col = "Date")
#plot and retrieve axes
axes = ctr_df.plot(kind='bar', sharey=False, sharex=True, subplots=True,
legend=True, width=0.8, layout=(3,2), fontsize=12, grid=True, figsize=(20,12), colormap='Dark2')
#plot horizontal line in each subplot
for ax in axes.flatten():
ax.axhline(0.3, color='k', linestyle='--')
plt.tight_layout()
plt.show()

输出:

enter image description here

关于python - 使用子图绘制水平线 Matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421549/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com