errorbar我有一維數組對於一些數量,說T.我已經數據點(X,Y)要與errorbars繪製並用顏色編碼T.彩條對matplotlib
我繪製errorbars爲:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.pylab as pylab
import matplotlib
X = np.linspace(0, 10, 50)
Y = np.random.normal(0, 1, 50)
E = np.random.normal(0, 0.1, 50)
norm = matplotlib.colors.Normalize(vmin=0, vmax=0.5)
c_m = matplotlib.cm.jet
s_m = matplotlib.cm.ScalarMappable(cmap=c_m, norm=norm)
s_m.set_array([])
plt.figure()
for i in range(0, len(Y)):
plt.errorbar(X[i], Y[i], color=s_m.to_rgba(E[i]), yerr=[E[i], E[i]], capsize=3, ls='none')
plt.grid()
plt.show()
這似乎並不奏效。說:
err must be [ scalar | N, Nx1 or 2xN array-like ]
對於plt.plot,如果我有說N曲線,每M個點,我必須的ColorCode由T各自的曲線,(尺寸:X [M],Y [N] [M ],T [N])
我做到以下幾點:
norm = matplotlib.colors.Normalize(
vmin=0,
vmax=32)
# choose a colormap
c_m = matplotlib.cm.jet
# create a ScalarMappable and initialize a data structure
s_m = matplotlib.cm.ScalarMappable(cmap=c_m, norm=norm)
s_m.set_array([])
plt.figure()
for i in range(0, N):
plt.plot(X, Y[i], color=s_m.to_rgba(T[i]))
plt.grid()
plt.show()
此方案適用於情節!但似乎不適用於錯誤欄和1D數組。
但是,我不太確定比較的好處有多遠,因爲在plot(2D)和errorbar(1D)情況下數組維數是不同的。
編輯:
得到的解決方案。它根本不涉及色條。就是那個陣列需要2XN陣列。
因此yerr = [[E [i]],[E [i]]]修復了它。
它您可以通過 「s_m.to_rgba(T)的顏色參數」 的意思不是真的清楚。我建議你提供一個使用plt.plot的工作解決方案,這將清楚你如何使用它。然後我們可以將它擴展到錯誤欄。 – ImportanceOfBeingErnest
添加了該過程。 – user3440489