Я хочу построить точечную диаграмму с цветной полосой и данными с погрешностями. Вот мой код:
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)))
Но все же, это не сработало. Какие-либо предложения?
Мне все еще интересно получить ответ на этот вопрос. Кто угодно?