Как заставить errorbars отображать последний с помощью Matplotlib
Я пытаюсь перефразировать некоторые эмпирические данные с барами ошибок поверх моих смоделированных данных. Кажется, что полосы ошибок отображаются сначала и, следовательно, переписываются (см. Ниже)
Я попытался использовать zorder, но я все равно получаю тот же результат. Код, который я использую,
for i in range(1,len(pf)):
pf[i,:] = av_pf_scale * pf[i,:]
pylab.semilogy(pf[0,0:180],pf[i,0:180],color='0.75')
pylab.semilogy(av_pf[0:180],color='r')
pylab.semilogy(av_mie[0:180],color='g', linestyle='-')
pylab.draw()
f = pylab.errorbar(ang,data[j],
yerr = delta_data[j],
fmt = 'o',
markersize = 3,
color = 'b',
zorder = 300,
antialiased = True)
Я был бы признателен, если кто-нибудь скажет мне, как сделать рендеринг errorbars сверху.
![Mulitplot]()
Ответы
Ответ 1
Похоже, что это ошибка в matplotlib
, где аргумент zorder
errorbar
неправильно передан в вертикальную часть строки ошибок.
реплицирует вашу проблему:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.gca()
[ax.plot(rand(50),color='0.75') for j in range(122)];
ax.errorbar(range(50),rand(50),yerr=.3*rand(50))
plt.draw()
Хакки работают:
fig = plt.figure()
ax = plt.gca()
[ax.plot(rand(50),color='0.75',zorder=-32) for j in range(122)];
ax.errorbar(range(50),rand(50),yerr=.3*rand(50))
plt.draw()
![error bar hack]()
Сообщить как проблему для matploblib https://github.com/matplotlib/matplotlib/issues/1622 (теперь исправлено и закрыто)