簡體   English   中英

使用子圖Matplotlib繪制水平線

[英]Plotting Horizontal Line Using Subplots Matplotlib

我看了下面的線程,它有所幫助,但是我想知道是否有人嘗試過稍微不同的方式。

使用pyplot在python中的多個子圖上繪制水平線

下面是數據的外觀,因此您可以進行測試(如有必要)= 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM