python - matplotlib 上错误栏的颜色栏

标签 python matplotlib

我有一个表示某个数量的一维数组,比如 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()

这似乎行不通。说:

err must be [ scalar | N, Nx1 or 2xN array-like ]

对于 plt.plot,如果我说 N 条曲线,每条曲线有 M 个点,我必须用 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()

这个方案适用于情节!但似乎不适用于错误栏和一维数组。

但是,我不确定比较效果有多好,因为绘图 (2D) 和错误条 (1D) 情况下的数组维度不同。

编辑:

得到解决方案。它根本与颜色条无关。只是那个 yerr 数组需要 2XN 数组。

因此 yerr=[[E[i]], [E[i]]] 修复了它。

最佳答案

我还是没看出问题所在。将 plt.plot 替换为 plt.errorbar 工作正常:

import matplotlib.pyplot as plt
import matplotlib.colors
import matplotlib.cm
import numpy as np

N=3
x=np.arange(10)
Y = np.random.rand(len(x),N)
a = np.ones_like(x)*0.1
T = np.array([5,12,27])

plt.figure()

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([])

for i in range(0, N):
    plt.errorbar(x, Y[:,i], yerr=[a,a], color=s_m.to_rgba(T[i]),  capsize=3, ls='none')
plt.grid()
plt.grid()

plt.show()

enter image description here

关于python - matplotlib 上错误栏的颜色栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42872452/

相关文章:

python - 使用艺术家动画每秒拍摄快照

python - 在 3D 图中绘制所有三个轴上的分布等值线

Python 线程 - 将控制权返回给终端,同时保持框架打开

python - 修改绘图轴,使其刻度标签的顺序和它们各自的点相应地改变——而不修改数据本身

python - Twitter API - Python - 150 个请求/小时,即使在经过身份验证后

python - 循环删除列表项

Python 内联 XML 或 ASCII 字符串/模板?

python - 如何在每个 py.test 断言失败时调用方法?

python - 类型错误 : __init__() got an unexpected keyword argument 'decision_function_shape'

python - 如何使用 matplotlib 绘制 HSV 色轮