![](/img/trans.png)
[英]Plotting a horizontal line on multiple subplots in python using pyplot
[英]Plotting Horizontal Line Using Subplots Matplotlib
我看了下面的线程,它有所帮助,但是我想知道是否有人尝试过稍微不同的方式。
下面是数据的外观,因此您可以进行测试(如有必要)= 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仅出现在最后一个情节中,而不是全部出现。
可以使用我的方法来完成吗? 我找不到任何可以建议的东西。 如果使用这种方法不可能做到这一点,那可以,我可以使用上述线程来帮助修改我的代码。
谢谢
您使用的是熊猫绘图功能,其构造是为了方便起见,而不是完整的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()
输出:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.