Plt.Error Верхние пределы имеют задний конец стрелки в моей координате

Два дня пытаюсь решить эту проблему. Я рисую верхние пределы, поэтому мне нужны стрелки, указывающие вниз, чтобы указывать на мои точки. Помимо прочего, я сейчас пробовал использовать Plt.Error для получения этих стрелок. Проблема в том, что конец стрелки указывает на точку, а не кончик.

Ниже я показываю свой код для построения графика этих данных без учета той части, где я читал данные. Кроме того, я добавил два изображения. Первое изображение - это итоговый сюжет. Второе изображение представляет собой желтую стрелку на этом графике, которая относится к точке (10, 0,0076), где вы можете ясно видеть, что конец стрелки указывает на эту координату.

импортировать matplotlib.pyplot как plt import numpy as np import pylab

f1 = plt.figure(0)
plt.errorbar(days,fluxdensity,yerr=0.01,uplims=True,linestyle='none',markeredgewidth=5,elinewidth=5)
plt.errorbar(days2, fluxdensity2, yerr=0.01,uplims=True,linestyle='none',markeredgewidth=5,elinewidth=5)
plt.errorbar(days3, fluxdensity3, yerr=0.01,uplims=True,linestyle='none',markeredgewidth=5,elinewidth=5)
plt.errorbar(days4, fluxdensity4,yerr=0.01,uplims=True,linestyle='none',markeredgewidth=5,elinewidth=5)

plt.grid()



plt.xlabel('Days Since Explosion', fontsize=18)
plt.ylabel('Flux Density muJy', fontsize=16)
plt.savefig('2014dtflux.pdf',format='pdf')
plt.xlim((9.9,10.1))
plt.ylim((-.03,.12))
plt.show()

Полный график

Пример одной точки, показывающей, что хвост стрелки указывает на (10, 0,0076)


person Candice Stauffer    schedule 11.07.2017    source источник


Ответы (1)


Кажется, вы хотите нарисовать стрелку. Чтобы нарисовать стрелку в matplotlib, можно использовать FancyArrowPatch.

введите описание изображения здесь

import matplotlib.pyplot as plt
import matplotlib.patches as patches

style="Simple,tail_width=2,head_width=5,head_length=7"
kw = dict(arrowstyle=style, color="k")

a1 = patches.FancyArrowPatch((0,0.7), (0,0.5),**kw )
a2 = patches.FancyArrowPatch((0,0.4), (0.0,0.3),**kw)


for a in [a1,a2]:
    plt.gca().add_patch(a)

plt.xlim(-1,1)

plt.show()
person ImportanceOfBeingErnest    schedule 11.07.2017