【发布时间】:2016-01-17 03:00:21
【问题描述】:
我想绘制一个散点图,它有一个颜色条,并且数据有误差条。这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(123)
x = np.linspace(0.1, 100, 10)
y = np.linspace(6, 18, 10)
yerr = np.random.random(10)
z = np.linspace(0, 10, 10)
plt.scatter(x, y, s = 20, c = z)
plt.colorbar()
plt.errorbar(x, y, yerr = yerr, fmt = '.')
但是,误差线以蓝色绘制。我想根据颜色条绘制它们,我该怎么做?例如,如果一个点的值为10,则应在red 中绘制误差线。
编辑
按照下面建议的答案,我写道:
cmap = matplotlib.cm.get_cmap('jet')
norm = matplotlib.colors.Normalize(vmin=min(y), vmax=max(y))
plt.scatter(x, y, s = 20, c=z, cmap=cmap)
plt.colorbar()
plt.errorbar(x, y, yerr = yerr, fmt = '.', c=cmap(norm(y)))
但还是没用。有什么建议吗?
我仍然有兴趣得到这个问题的答案。有人吗?
【问题讨论】:
标签: python matplotlib plot colorbar errorbar