Как удалить нежелательные линии из python сюжета? - PullRequest
0 голосов
/ 17 января 2020

[Отказ от ответственности: как новичок в мире программирования, все здесь ново для меня. Надеюсь, вы понимаете, и заранее благодарим вас за конструктивную критику]

У меня проблема с форматированием при построении некоторых массивов на python. У меня есть два массива и один массив с ошибками:

x1=n.log(Ar_P0/Ar_P1)
y1=n.log(Ar_P0/H)
y1_err=((Ar_P0/H)*n.sqrt((dP/Ar_P0)**2+(dH/H)**2))/y1

И я хочу построить график y1 как функцию от x1 с барами ошибок для y1:

plt.plot(x1,y1, '.k', label='transformed data points for Argon')
plt.errorbar(x1,y1,yerr=y1_err, ecolor='k')
plt.title('Evolution of the ln(P0/H) as a function of ln(P0/P1) for Argon')
plt.xlabel('ln(P0/P1) for Argon')
plt.ylabel('ln(P0/H) for Argon')

plt.legend()

но результат выглядит так: (ссылка на сюжет)

И я не понимаю, почему все мои точки данных связаны с синими линиями; это портит форматирование. Должно быть, где-то висит какой-то мусор, но я не понимаю, как его убрать.

Будучи новичком, я надеюсь, что вы сможете объяснить это как можно проще. Я видел некоторые другие сообщения, связанные с этой проблемой (и я даже не уверен, что это так, но я так думаю), но я не понимаю предоставленные объяснения. Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 17 января 2020

другим вариантом будет просто использовать vlines напрямую:

plt.vlines(x1, y1 - y1_err, y1 + y1_err)

, что приведет к рисованию вертикальных линий для полос ошибок. это подойдет, если вы не используете какую-либо дополнительную функциональность, предоставляемую errorbar

0 голосов
/ 17 января 2020

Я не могу комментировать, но я думаю, что это может решить проблему с строкой:

заменить это

plt.errorbar(x1,y1,yerr=y1_err, ecolor='k')

на

plt.errorbar(x1,y1,yerr=y1_err, ecolor='k', linestyle='none')

Если нет, то я не знаю !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...