簡體   English   中英

matplotlib錯誤欄圖-使用自定義顏色圖

[英]matplotlib errorbar plot - using a custom colormap

我正在嘗試為x軸上的每個點制作一個具有不同顏色的誤差線圖。 錯誤條形圖本身可以很好地顯示,但是當我嘗試使用顏色圖時它會炸彈,因此我必須做錯了。 這是我想要做的一個人為的示例:

import matplotlib.pyplot as plt

colors = ["b","g","c","m","y","k","r","g","c","m","y","k",
          "b","g","c","m","y","k","r","g","c","m","y","k"]

xlabels = ['A','B','8','14']

xval = [0, 1, 2, 3]
yval = [0, 1, 4, 9]
yerr = [0.5, 0.4, 0.6, 0.9]


cmap = dict(zip( xval,colors))

現在,運行此命令后,我可以去:

plt.errorbar(xval, yval, yerr=yerr, color='b')

這給了我下面的圖表(即,它可以工作。但是當我嘗試這樣做時:

plt.errorbar(xval, yval, yerr=yerr, color=cmap)

它給了我一個錯誤,例如“ ValueError:to_rgba:Invalid rgba arg“ {0:'b',1:'g',2:'c',3:'m'}”

可以做我想做的事嗎? 我試圖做的是讓誤差條形圖中的4個點中的每個點都有不同的顏色。 我真的不需要連接這些點的線。 感謝任何幫助/建議。

錯誤條形圖

我已經提到過,您可以遍歷每個特定的點/顏色。

另一個解決方案是在您的errorbar圖中使用scatter ,就像這個問題一樣 代碼如下

import matplotlib.pyplot as plt

colors = ["b","g","c","m","y","k","r","g","c","m","y","k",
          "b","g","c","m","y","k","r","g","c","m","y","k"]

xlabels = ['A','B','8','14']

xval = [0, 1, 2, 3]
yval = [0, 1, 4, 9]
yerr = [0.5, 0.4, 0.6, 0.9]

plt.scatter(xval, yval, c=colors, s=50, zorder=3)
plt.errorbar(xval, yval, yerr=yerr, zorder=0, fmt="none",
             marker="none")

plt.savefig("scatter_error.png", dpi=300)
plt.show()

結果如下

在此處輸入圖片說明

暫無
暫無

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

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