Matplotlib Errorbar

Matplotlib Errorbar

参考:matplot errorbar

Matplotlib是一个Python绘图库,可以用来创建各种类型的图表,包括线图、散点图和误差棒图。误差棒图是用来显示数据集中的均值和误差范围的一种常见方式,可以帮助观察者更好地理解数据的分布情况。

创建基本的误差棒图

误差棒图的创建非常简单,只需要使用Matplotlib的errorbar函数即可。下面是一个创建基本误差棒图的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
error = [0.3, 0.2, 0.5, 0.4, 0.6]

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

Output:

Matplotlib Errorbar

在这个示例中,x是横坐标数据,y是纵坐标数据,error是误差范围。yerr参数用来指定误差范围,fmt参数用来指定数据点的样式。

自定义误差棒图样式

除了基本的误差棒图样式外,我们还可以通过自定义参数来调整误差棒图的样式,包括误差棒的颜色、线型和粗细等。以下是一个自定义误差棒图样式的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
error = [0.3, 0.2, 0.5, 0.4, 0.6]

plt.errorbar(x, y, yerr=error, fmt='o', ecolor='red', capsize=5, capthick=2)
plt.show()

Output:

Matplotlib Errorbar

在这个示例中,通过ecolor参数可以指定误差棒的颜色,capsize参数可以指定误差棒端点的大小,capthick参数可以指定误差棒端点的粗细。

横向误差棒图

除了纵向误差棒图外,Matplotlib还支持绘制横向误差棒图。下面是一个绘制横向误差棒图的示例代码:

import matplotlib.pyplot as plt

y = [1, 2, 3, 4, 5]
x = [2, 3, 5, 7, 11]
error = [0.3, 0.2, 0.5, 0.4, 0.6]

plt.errorbar(x, y, xerr=error, fmt='o')
plt.show()

Output:

Matplotlib Errorbar

在这个示例中,除了将xy互换外,还需要使用xerr参数来指定横向误差范围。

多组数据的误差棒图

有时候我们需要同时展示多组数据的误差范围,Matplotlib也可以轻松实现这个功能。以下是一个展示多组数据的误差棒图的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 6, 8, 10]
error1 = [0.3, 0.2, 0.5, 0.4, 0.6]
error2 = [0.2, 0.3, 0.4, 0.5, 0.7]

plt.errorbar(x, y1, yerr=error1, fmt='o', label='Data 1')
plt.errorbar(x, y2, yerr=error2, fmt='^', label='Data 2')
plt.legend()
plt.show()

Output:

Matplotlib Errorbar

在这个示例中,我们通过多次调用errorbar函数来绘制不同数据集的误差棒,并使用label参数来标记每组数据。

自定义误差棒图标签

误差棒图的标签可以帮助观察者更好地理解数据,我们可以通过添加标签来自定义误差棒图中的标签。以下是一个自定义误差棒图标签的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
error = [0.3, 0.2, 0.5, 0.4, 0.6]

plt.errorbar(x, y, yerr=error, fmt='o')
for i, txt in enumerate(y):
    plt.annotate(f'{txt}', (x[i], y[i]+error[i]))

plt.show()

Output:

Matplotlib Errorbar

在这个示例中,我们使用annotate函数来为每个数据点添加标签,标签位置为数据点的坐标加上误差范围。

自定义误差棒图风格

Matplotlib提供了丰富的风格和样式供我们选择,可以根据需求来自定义误差棒图的风格。以下是一个自定义误差棒图风格的示例代码:

import matplotlib.pyplot as plt

plt.style.use('seaborn-darkgrid')

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
error = [0.3, 0.2, 0.5, 0.4, 0.6]

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

在这个示例中,我们使用style.use函数来选择seaborn-darkgrid风格,可以让误差棒图更加美观。

绘制不同类型的误差棒图

除了常见的误差棒图外,Matplotlib还支持绘制其他类型的误差棒图,如对称误差棒和非对称误差棒。以下是一个绘制对称误差棒图和非对称误差棒图的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
sym_error = 0.2

plt.errorbar(x, y, yerr=sym_error, fmt='o', label='Symmetric Error')
plt.errorbar(x, y, yerr=[[0.1, 0.3, 0.2, 0.4, 0.5], [0.2, 0.1, 0.3, 0.5, 0.4]], fmt='^', label='Asymmetric Error')
plt.legend()
plt.show()

Output:

Matplotlib Errorbar

在这个示例中,我们通过yerr参数指定对称误差范围,以及使用一个长度为2的列表来指定非对称误差范围。

绘制误差棒图和线图结合

有时候我们需要在误差棒图上加上一个拟合的线图,这样可以更好地展示数据之间的关系。以下是一个绘制误差棒图和线图结合的示例代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1, 6)
y = np.exp(x)
error = 0.2 * y

plt.errorbar(x, y, yerr=error, fmt='o', label='Data with Error')

p = np.polyfit(x, y, deg=1)
plt.plot(x, np.polyval(p, x), 'r--', label='Linear Fit')

plt.legend()
plt.show()

Output:

Matplotlib Errorbar

在这个示例中,我们使用polyfit函数拟合出一条线性拟合线,并将其绘制在误差棒图上。

对数坐标系误差棒图

除了常规的线性坐标系外,Matplotlib还支持绘制误差棒图在对数坐标系上。以下是一个在对数坐标系上绘制误差棒图的示例代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1, 6)
y = np.exp(x)
error = 0.2 * y

plt.errorbar(x, y, yerr=error, fmt='o')
plt.yscale('log')
plt.show()

Output:

Matplotlib Errorbar

在这个示例中,我们使用yscale函数将y轴的坐标刻度设置为对数坐标,并在对数坐标系上绘制误差棒图。

通过以上示例代码,我们可以看到Matplotlib中如何绘制各种类型的误差棒图,并根据需求来自定义样式、添加标签、调整布局等操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程