[英]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.