簡體   English   中英

將多種地塊合二為一

[英]putting multiple style of plots into one

我有以下數組。 我想使用random_round_i數組創建3個四分位數的圖, upper_limits顯示每個upper_limits的上限,所有底線都作為底線,並再次作為單個圖流。

我沒有將所有內容放入盒裝圖中,因為流量,upper_limits和base來自不同的來源,實際上我需要將它們的值與隨機值進行比較

random_round_1=[0.508477, 0.509855, 0.517986]
random_round_2=[0.506998, 0.523818, 0.503029]
random_round_3=[0.524584, 0.53033, 0.514867]
flow = [0.503688, 0.507809, 0.504012]
upper_limits = [0.544946, 0.568013, 0.616112]
base = [0.481581] 

我該如何創建一個繪圖,在這種情況下,我將基線作為所有箱形圖下方的一條水平長線,然后將這些箱形圖彼此相鄰,最后將流和upper_limits作為法線圖。

在此處輸入圖片說明

當我只使用下面的代碼時,箱形圖和折線圖在正確的位置不匹配。 我希望這些行能夠通過所有三個箱形圖。

    plt.boxplot([random_round_1, random_round_2, random_round_3])
    plt.plot(upper_limits)
    plt.plot(flow)
    plt.hlines(y = base, xmin = 0, xmax = 4)

問題是您的箱形圖以x = 1、2和3為中心。但是,當您使用plt.plot(upper_limits)plt.plot(flow) ,您只是傳遞了y值。 在這種情況下,默認的x值從0開始。因此,您的曲線不會落在箱形圖頂部的相同x值處。

您需要從1開始的正確x網格,可以使用rangenp.arange生成該網格。

plt.boxplot([random_round_1, random_round_2, random_round_3])
plt.plot(range(1, len(upper_limits)+1), upper_limits)
plt.plot(range(1, len(flow)+1), flow)
plt.hlines(y = base, xmin = 0, xmax = 4)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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