我有一个1D数组来表示某个量,比如T。我有一些数据点(X,Y)用误差条绘制,用T进行彩色编码
我正在绘制错误条:
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()
这似乎行不通。说:
^{pr2}$为plt.绘图每一条曲线都有T,M,N,如果每一条曲线都有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()
这个计划对阴谋有效!但似乎不适用于errorbar和1D数组。在
但是,我不确定这个比较有多好,因为在plot(2D)和errorbar(1D)情况下数组的维数是不同的。在
编辑:
找到解决办法了。它与colorbar完全无关。只是那个yerr数组需要2XN数组。在
因此,yerr=[[E[i]],[E[i]]]修复了它。在
我还是看不出问题。将
plt.plot
替换为plt.errorbar
效果很好:相关问题 更多 >
编程相关推荐