簡體   English   中英

具有多個y軸的誤差線圖會產生ValueError

[英]Errorbar plot with multiple y-axes produces ValueError

我正在嘗試使用來自此處的具有多個軸的繪圖作為模板創建具有多個y軸的errorbar繪圖。 如果僅更改模板的這一行:

p1, = host.plot([0, 1, 2], [0, 1, 2], "b-", label="Density")

對此:

p1, = host.errorbar([0, 1, 2], [0, 1, 2], yerr=[0.5, 0.5, 0.5], fmt='b-', label="Density")

我得到的輸出:

  1. 具有多個y軸的誤差線圖,但僅顯示p1數據。
  2. “ ValueError:太多值無法解包”。

有人可以幫忙解釋為什么會這樣嗎? 提前致謝。

errorbarplot返回不同的結果。 plot返回行的列表,但是在這種情況下,代碼假設僅返回了一行,因此p1,等將其從列表中刪除。

errorbar會返回一個Container對象,並且該容器包含多行。 您不能使用p1,來返回errorbar 相反,您需要以不同的方式處理它。

p1在以后的代碼中有兩個不同的用途:設置顏色和設置標簽。 事實證明, get_label是容器的方法。 get_color不是,但是它是容器子代的方法,並且應該是相同的顏色。 因此,更改代碼以僅將容器分配給p1 ,並使用其子容器之一的顏色。 例如:

p1 = host.errorbar([0, 1, 2], [0, 1, 2], yerr=[0.5, 0.5, 0.5], 
                   fmt='b-', label="Density")

然后:

host.yaxis.label.set_color(p1.get_children()[0].get_color())

host.tick_params(axis='y', colors=p1.get_children()[0].get_color(), **tkw)

圖例設置代碼根本不需要更改。

暫無
暫無

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

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