如何使用ax.errorbar()函数绘制误差线图

如何使用ax.errorbar()函数绘制误差线图

参考:ax errorbar

在matplotlib中,ax.errorbar()函数用于绘制误差线图,可以在数据点周围显示误差条。这在展示数据的同时,也可以展示数据的不确定性,使图表更具说服力。本文将介绍如何使用ax.errorbar()函数绘制误差线图,并提供详尽的示例代码。

示例1:基本误差线图

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 1)
y = np.sin(x)
error = np.random.rand(10)  # 生成随机误差

plt.errorbar(x, y, yerr=error, fmt='o', color='b')
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

在这个示例中,我们生成了一组正弦函数的数据,并添加了随机误差。通过errorbar()函数,我们将x、y数据传入并指定y轴的误差,fmt='o'表示数据点以圆圈标记,color='b'表示误差条的颜色为蓝色。

示例2:自定义误差条样式和样式

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='r', elinewidth=2, capsize=5, capthick=2)
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

在这个示例中,我们自定义了误差条的样式和参数。通过ecolor='r'指定误差条颜色为红色,elinewidth=2指定误差条线宽为2,capsize=5指定误差条帽的大小为5,capthick=2指定误差条帽的线宽为2。

示例3:水平误差条图

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
x_err = [0.2, 0.3, 0.4, 0.1, 0.5]

plt.errorbar(x, y, xerr=x_err, fmt='o', ecolor='g')
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

这个示例展示了如何绘制水平误差条图。我们传入了x轴的误差数据,参数xerr=x_err表示x轴误差,ecolor='g'指定误差条颜色为绿色。

示例4:不同数据点不同颜色的误差条

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]
colors = ['r', 'g', 'b', 'c', 'm']

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='k', elinewidth=2, capsize=5, capthick=2, color=colors)
plt.show()

在这个示例中,我们设置了不同数据点显示不同颜色的误差条,color=colors参数用于指定每个数据点的颜色。误差条的颜色由ecolor='k'指定。

示例5:设置误差条标签

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]
labels = ['A', 'B', 'C', 'D', 'E']

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=2, capsize=5, capthick=2)
for i, txt in enumerate(labels):
    plt.annotate(txt, (x[i], y[i]))

plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

在这个示例中,我们除了绘制误差条外,还为每个数据点添加了标签。通过plt.annotate()函数,在每个数据点的位置添加了对应的标签。

示例6:自定义误差条方向

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
x_err = [0.1, 0.2, 0.3, 0.4, 0.5]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, xerr=x_err, yerr=y_err, fmt='o', ecolor='r', elinewidth=2, capsize=5, capthick=2)
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

在这个示例中,我们展示了如何自定义水平和垂直方向的误差条。通过指定xerryerr参数,可以分别设置x轴和y轴的误差。

示例7:定制误差条样式

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinestyle='-', capsize=5, capthick=2)
plt.show()

通过设置elinestyle='-'参数,我们可以更改误差条的线型。在这个示例中,我们将误差条的线型设置为实线。

示例8:绘制包含缺失值的误差条图

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = np.sin(x)
y[3] = np.nan

error = np.random.rand(10)

plt.errorbar(x, y, yerr=error, fmt='o', color='b')
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

在这个示例中,我们展示了如何绘制包含缺失值的误差条图。通过将数据中的某个值设置为np.nan,即表示该数据点缺失,误差条图将不会显示该数据点。

示例9:绘制多组误差条

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 1)
y1 = np.sin(x)
y2 = np.cos(x)
error1 = np.random.rand(10)
error2 = np.random.rand(10)

plt.errorbar(x, y1, yerr=error1, fmt='o', color='b', label='sin')
plt.errorbar(x, y2, yerr=error2, fmt='x', color='r', label='cos')
plt.legend()
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

在这个示例中,我们绘制了两组数据的误差条图。通过多次调用errorbar()函数,可以在同一张图上展示多组数据的误差条。

示例10:自定义误差条宽度

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=4, capsize=5, capthick=2)
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

通过设置elinewidth参数,我们可以自定义误差条的宽度。在这个示例中,我们将误差条的宽度设置为4。

示例11:误差条图水平对齐

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', align='mid', elinewidth=2, capsize=5, capthick=2)
plt.show()

通过设置align='mid'参数,可以使误差条与数据点水平对齐。在这个示例中,我们将误差条水平对齐于数据点。

示例12:多种样式的误差条

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=2, capsize=5, capthick=2)
plt.errorbar(x, np.array(y)*2, yerr=np.array(y_err)*1.5, fmt='x', ecolor='r', elinewidth=2, capsize=5, capthick=2)
plt.show()

在这个示例中,我们展示了如何在同一张图上绘制不同样式的误差条。我们通过多次调用errorbar()函数,并分别设置不同的样式参数,实现了多种样式的误差条。

示例13:自定义误差条长度

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=2, capsize=10, capthick=2)
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

通过设置capsize参数,我们可以自定义误差条的末端帽的长度。在这个示例中,我们将帽的长度设置为10。

示例14:设置误差条线型

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=2, capsize=5, capthick=2, linestyle='--')
plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

通过设置linestyle参数,我们可以为误差条指定线型。在这个示例中,我们将误差条的线型设置为虚线。

示例15:自定义误差条标记

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=2, capsize=5, capthick=2, marker='s')
plt.show()

通过设置marker参数,我们可以自定义误差条的标记样式。在这个示例中,我们将误差条的标记样式设置为正方形。

示例16:调整误差条标签位置

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y_err = [0.5, 0.4, 0.3, 0.2, 0.1]

plt.errorbar(x, y, yerr=y_err, fmt='o', ecolor='b', elinewidth=2, capsize=5, capthick=2)
plt.errorbar(x, np.array(y)*2, yerr=np.array(y_err)*1.5, fmt='x', ecolor='r', elinewidth=2, capsize=5, capthick=2)
for i, txt in enumerate(y):
    plt.text(x[i], y[i], f'{y[i]}',
             color='black',
             fontsize=9,
             horizontalalignment='center',
             verticalalignment='bottom')
plt.show()

在这个示例中,我们使用plt.text()函数调整了误差条标签的位置,将标签显示在误差条上。参数horizontalalignment='center'verticalalignment='bottom'用于设置标签的水平和垂直对齐方式。

示例17:通过pandas绘制误差条图

import pandas as pd
import matplotlib.pyplot as plt

data = {'x': [1, 2, 3, 4, 5],
        'y': [1, 4, 9, 16, 25],
        'y_err': [0.5, 0.4, 0.3, 0.2, 0.1]}
df = pd.DataFrame(data)

ax = df.plot(x='x', y='y', kind='bar', yerr='y_err', capsize=5, capthick=2, color='b', legend=False)
plt.show()

通过pandas库,可以更便捷地绘制误差条图。在这个示例中,我们将数据转换为DataFrame,并使用df.plot()函数绘制了误差条图。

示例18:绘制包含多个子图的误差条图

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 3, 6, 10, 15]
y_err1 = [0.5, 0.4, 0.3, 0.2, 0.1]
y_err2 = [0.3, 0.2, 0.4, 0.1, 0.5]

fig, ax = plt.subplots(1, 2, figsize=(10, 4))
ax[0].errorbar(x, y1, yerr=y_err1, fmt='o', ecolor='b', elinewidth=2, capsize=5, capthick=2)
ax[0].set_title('Group 1')

ax[1].errorbar(x, y2, yerr=y_err2, fmt='o', ecolor='r', elinewidth=2, capsize=5, capthick=2)
ax[1].set_title('Group 2')

plt.show()

Output:

如何使用ax.errorbar()函数绘制误差线图

通过在plt.subplots()函数中指定行数和列数,可以绘制包含多个子图的误差条图。在这个示例中,我们通过创建一个1行2列的图像,将两组数据分别显示在两个子图中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程