为什么我的错误栏显示许多奇怪的行?



这是我的代码,当我运行我的图形是这样的:在这里输入图像描述我不知道如何解决它。当我画很多值的时候。我的文件是: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轴排列的,这将产生您在绘图中观察到的奇怪之字形线。

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

来实现。
linestyle=''

到plot命令。通常如果你碰巧有这个问题,点与点之间的线是没有意义的,所以最好不要从科学的角度来画它们。

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

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

您可以在errorbar()函数的文档中找到参数和其他选项的含义。

相关内容

  • 没有找到相关文章

最新更新