为什么我的错误栏显示有许多奇怪的线条?

Why my errorbar are shown with many strange lines?

这是我的代码,当我 运行 我的图形是这样的: enter image description here 我不知道如何解决它。就在我绘制许多值时,它发生了。 我的文件是这样的:https://drive.google.com/file/d/1gfljbTr82K5lLKRa7BVbs5JUmqtaZsp1/view?usp=sharing

我正在尝试绘制每个值的误差线。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_csv('C:/Users/LENOVO/Downloads/PN_ART.txt', sep=" ", header=0)
#oxígeno
O3art = df.loc[:, 'O3'] 
eO3art = df.loc[:, 'eO3'] 
#Nitrógeno
N2art = df.loc[:, 'N2'] 
eN2art = df.loc[:, 'eN2'] 
#Hidrógeno
Halphart = df.loc[:, 'Halpha'] 
eHalphart = df.loc[:, 'eHalpha'] 
eHbetart = df.loc[:, 'eHbeta'] 

Y = np.log(O3art)
X = np.log(N2art/Halphart)

xe = eN2art + eHalphart
ye = eO3art + eHbetart

plt.plot(X, Y, 'go')
plt.errorbar(X, Y, xerr=xe, yerr=ye, color='k')

Matplotlib 默认在连续的点之间画线。如果您绘制多个点,这些点没有沿着 x-axis 排序,这将产生您在图中观察到的奇怪的锯齿线。

一种解决方案是按 x 值对数据点进行排序。另一种方法是告诉 matplotlib 不要画线。这可以通过传递 a

linestyle=''

到绘图命令。通常你碰巧遇到这个问题,点与点之间的连线反正是没有意义的,所以从科学的角度来说还是不要画的好。

顺便说一下,你可以(并且应该将 plot()errorbar() 调用合并为一个 errorbar() 调用,例如像这样

plt.errorbar(X, Y, xerr=xe, yerr=ye, marker='o', color='g', linestyle='', ecolor='k')

您可以在 documentation of the errorbar() function.

中找到参数和附加选项的含义