errorbar matplotlib

errorbar matplotlib

参考:errorbar matplotlib

Matplotlib 是一个用于创建图表的 Python 库,可以绘制各种类型的图形,如折线图、散点图和误差条图(errorbar)。在数据可视化中,误差条图非常有用,可以用来展示数据点的不确定性或误差范围。在本文中,我们将详细介绍如何使用 Matplotlib 中的 errorbar 函数绘制误差条图。

1. Basic Errorbar Plot

首先,让我们看一个基本的误差条图示例。下面的代码演示了如何使用 Matplotlib 绘制一个简单的误差条图,显示平均值为 0 的数据点的误差范围:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5, 0.7, 0.9]
errors = [0.05, 0.1, 0.05, 0.1, 0.05]

plt.errorbar(x, y, yerr=errors, fmt='o')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Basic Errorbar Plot')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到一个简单的误差条图,显示了数据点的误差范围。

2. Customizing Errorbar Plot

我们还可以自定义误差条图的样式,如改变误差条的颜色、线型和标记。下面的代码演示了如何自定义误差条图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5, 0.7, 0.9]
errors = [0.05, 0.1, 0.05, 0.1, 0.05]

plt.errorbar(x, y, yerr=errors, fmt='o', ecolor='red', linestyle='--', marker='s')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Customized Errorbar Plot')
plt.show()

运行上面的代码,你将看到一个自定义样式的误差条图,误差条的颜色为红色,线型为虚线,标记形状为正方形。

3. Asymmetric Errorbar Plot

有时,数据点的误差范围在上下方向上不相等,这时可以使用 asymmetric 参数来指定上下误差范围。下面的代码演示了如何绘制上下误差范围不相等的误差条图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5, 0.7, 0.9]
errors_up = [0.05, 0.1, 0.15, 0.1, 0.05]
errors_down = [0.1, 0.15, 0.1, 0.05, 0.1]

plt.errorbar(x, y, yerr=[errors_down, errors_up], fmt='o')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Asymmetric Errorbar Plot')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到一个上下误差范围不相等的误差条图,可以清晰地看出数据点的不确定性。

4. Errorbar Capsize

误差条图中的”cap”是误差条两端的横线,可以使用 capsize 参数调整其长度。下面的代码演示了如何设置误差条的 capsize:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5, 0.7, 0.9]
errors = [0.05, 0.1, 0.05, 0.1, 0.05]

plt.errorbar(x, y, yerr=errors, fmt='o', capsize=5)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Errorbar Plot with Capsize')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到一个设置了 capsize 的误差条图,误差条两端横线的长度为 5。

5. Errorbar Line Width and Transparency

除了设置误差条的颜色和样式外,还可以调整误差条的线宽和透明度。下面的代码演示了如何设置误差条的线宽和透明度:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5, 0.7, 0.9]
errors = [0.05, 0.1, 0.05, 0.1, 0.05]

plt.errorbar(x, y, yerr=errors, fmt='o', linewidth=2, alpha=0.5)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Errorbar Plot with Line Width and Transparency')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到一个设置了线宽和透明度的误差条图,线宽为 2,透明度为 0.5。

6. Errorbar Color Map

如果想根据数据点的数值设定误差条的颜色,可以使用 colormap 参数。下面的代码演示了如何根据数据点的数值设定误差条的颜色:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5])
y = np.array([0.1, 0.3, 0.5, 0.7, 0.9])
errors = np.array([0.05, 0.1, 0.05, 0.1, 0.05])
colors = np.array([10, 20, 30, 40, 50])

plt.errorbar(x, y, yerr=errors, fmt='o', c=colors, cmap='coolwarm')
plt.colorbar()
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Errorbar Plot with Color Map')
plt.show()

运行上面的代码,你将看到一个根据数据点数值设定颜色的误差条图,并且还有颜色条显示对应数值和颜色。

7. Errorbar Annotations

有时候,我们希望在误差条图上展示数据点的具体数值,这时可以使用 annotate 函数添加注释。下面的代码演示了如何在误差条图上添加数据点的注释:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5, 0.7, 0.9]
errors = [0.05, 0.1, 0.05, 0.1, 0.05]

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

for i, (xi, yi, err) in enumerate(zip(x, y, errors)):
    plt.annotate(f'{yi:.2f}', (xi, yi+err+0.1))

plt.xlabel('X')
plt.ylabel('Y')
plt.title('Errorbar Plot with Annotations')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到一个带有数据点注释的误差条图,每个数据点上都显示了具体的数值。

8. Multiple Errorbar Plots

在同一张图中绘制多个误差条图是很常见的需求,在 Matplotlib 中可以简单实现。下面的代码演示了如何绘制多个误差条图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [0.1, 0.3, 0.5, 0.7, 0.9]
y2 = [0.2, 0.4, 0.6, 0.8, 1.0]
errors1 = [0.05, 0.1, 0.05, 0.1, 0.05]
errors2 = [0.1, 0.15, 0.1, 0.05, 0.1]

plt.errorbar(x, y1, yerr=errors1, fmt='o', label='Data 1')
plt.errorbar(x, y2, yerr=errors2, fmt='s', label='Data 2')

plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Multiple Errorbar Plots')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到两个误差条图在同一张图中显示,并带有不同的标签。

9. Errorbar with Logarithmic Scale

有时候,数据点的数值跨度很大,可以使用对数坐标轴来展示数据。下面的代码演示了如何在对数坐标轴上绘制误差条图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 100, 1000, 10000, 100000]
errors = [3, 10, 50, 100, 500]

plt.errorbar(x, y, yerr=errors, fmt='o')
plt.yscale('log')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Errorbar Plot with Log Scale')
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到一个在对数坐标轴上绘制的误差条图,数据点的数值已经被转换成了对数形式。

10. Errorbar Subplots

在创建子图时,可以在不同的子图中绘制不同的误差条图。下面的代码演示了如何在多个子图中绘制不同的误差条图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [0.1, 0.3, 0.5, 0.7, 0.9]
y2 = [0.2, 0.4, 0.6, 0.8, 1.0]
errors1 = [0.05, 0.1, 0.05, 0.1, 0.05]
errors2 = [0.1, 0.15, 0.1, 0.05, 0.1]

plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
plt.errorbar(x, y1, yerr=errors1, fmt='o')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Subplot 1')

plt.subplot(1, 2, 2)
plt.errorbar(x, y2, yerr=errors2, fmt='s')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Subplot 2')

plt.tight_layout()
plt.show()

Output:

errorbar matplotlib

运行上面的代码,你将看到两个子图中分别绘制了不同的误差条图。

结论

在本文中,我们详细介绍了如何使用 Matplotlib 绘制误差条图。从基本的误差条图到自定义样式,再到多个子图中展示不同的误差条图,我们演示了多种用法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程