Matplotlib示例

Matplotlib示例

参考:Matplotlib Examples

Matplotlib是一个用于创建图形的Python库。它可以用来绘制各种类型的图表,包括线图、散点图、直方图、饼图等。在本文中,我将为您介绍一些Matplotlib的常见用法,并提供一些示例代码。

绘制简单线图

首先,让我们来绘制一个简单的线图。下面的代码将创建一个包含10个数据点的线图,并显示在屏幕上。

import matplotlib.pyplot as plt

x = range(10)
y = [i*2 for i in x]

plt.plot(x, y)
plt.show()

Output:

Matplotlib示例

绘制散点图

接下来,让我们来绘制一个散点图。下面的代码将创建一个包含10个数据点的散点图,并显示在屏幕上。

import matplotlib.pyplot as plt

x = range(10)
y = [i*2 for i in x]

plt.scatter(x, y)
plt.show()

Output:

Matplotlib示例

绘制直方图

直方图是用来展示数据分布的一种常见图表类型。下面的代码将创建一个包含1000个随机数的直方图,并显示在屏幕上。

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)

plt.hist(data, bins=30)
plt.show()

Output:

Matplotlib示例

绘制饼图

饼图用来显示数据的相对比例。下面的代码将创建一个简单的饼图,并显示在屏幕上。

import matplotlib.pyplot as plt

sizes = [25, 35, 20, 20]
labels = ['A', 'B', 'C', 'D']

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()

Output:

Matplotlib示例

自定义图表样式

您可以通过一些方法来自定义Matplotlib图表的样式,包括线条颜色、标记形状和图例等。下面的代码演示了如何自定义线图的样式。

import matplotlib.pyplot as plt

x = range(10)
y1 = [i*2 for i in x]
y2 = [i*2+1 for i in x]

plt.plot(x, y1, linestyle='-', color='blue', marker='o', label='Line 1')
plt.plot(x, y2, linestyle='--', color='red', marker='s', label='Line 2')
plt.legend()
plt.show()

Output:

Matplotlib示例

添加标题和标签

为了让图表更具可读性,您可以添加标题、轴标签和图例等。下面的代码演示了如何为一个饼图添加标题和图例。

import matplotlib.pyplot as plt

sizes = [25, 35, 20, 20]
labels = ['A', 'B', 'C', 'D']

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title('Pie Chart Example')
plt.legend(loc='upper left')
plt.show()

Output:

Matplotlib示例

子图

有时候需要在一个图像中显示多个子图,这时可以使用Matplotlib的subplots方法。下面的代码演示了如何创建一个包含2个子图的图像。

import matplotlib.pyplot as plt

fig, axs = plt.subplots(1, 2)

axs[0].plot(range(10), [i*2 for i in range(10)])
axs[0].set_title('Subplot 1')

axs[1].scatter(range(10), [i*2 for i in range(10)])
axs[1].set_title('Subplot 2')

plt.show()

Output:

Matplotlib示例

3D图

Matplotlib还支持绘制3D图表,包括3D线图、3D散点图和3D曲面图等。下面的代码演示了如何创建一个3D散点图。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)

ax.scatter(x, y, z)
plt.show()

Output:

Matplotlib示例

绘制多个数据系列

有时候需要在同一个图中绘制多个数据系列,这时可以通过多次调用plot方法来实现。下面的代码演示了如何在同一个图中绘制两个数据系列。

import matplotlib.pyplot as plt

x = range(10)
y1 = [i*2 for i in x]
y2 = [i*2+1 for i in x]

plt.plot(x, y1, color='blue', label='Series 1')
plt.plot(x, y2, color='red', label='Series 2')
plt.legend()
plt.show()

Output:

Matplotlib示例

绘制误差条

有时候需要在图表中显示数据的误差范围,这时可以使用errorbar方法。下面的代码演示了如何绘制一个包含误差条的散点图。

import matplotlib.pyplot as plt

x = range(10)
y = [i*2 for i in x]
yerr = [1]*10

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

Output:

Matplotlib示例

自定义坐标轴

您可以通过一些方法来自定义图表的坐标轴,包括设置坐标轴的范围、刻度和标签等。下面的代码演示了如何自定义坐标轴。

import matplotlib.pyplot as plt

x = range(10)
y = [i*2 for i in x]

plt.plot(x, y)
plt.xlim(0, 15)
plt.ylim(0, 30)
plt.xticks(range(0, 16, 5))
plt.yticks(range(0, 31, 10))
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()

Output:

Matplotlib示例

多个子图网格

除了使用subplots方法创建包含多个子图的图像外,还可以使用subplot2grid方法来创建更复杂的子图网格。下面的代码演示了如何创建一个包含多个子图的网格。

import matplotlib.pyplot as plt

plt.subplot2grid((3, 3), (0, 0), rowspan=2, colspan=2)
plt.plot(range(10), [i*2 for i in range(10)])

plt.subplot2grid((3, 3), (0, 2))
plt.scatter(range(10), [i*2 for i in range(10)])

plt.subplot2grid((3, 3), (1, 2), rowspan=2)
plt.hist(range(10))

plt.show()

Output:

Matplotlib示例

使用样式表

Matplotlib提供了一些内置的样式表,可以用来快速修改图表的样式。您可以通过plt.style.use()方法来应用样式表。下面的代码演示了如何使用内置样式表ggplot来修改图表样式。

import matplotlib.pyplot as plt

plt.style.use('ggplot')

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

plt.scatter(x, y)
plt.show()

Output:

Matplotlib示例

添加注释

在图表中添加注释可以帮助解释数据,提高图表的可读性。下面的代码演示了如何在一个散点图中添加注释。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

plt.scatter(x, y)
for i in range(len(x)):
    plt.text(x[i], y[i], f'({x[i]}, {y[i]})', fontsize=12, ha='right')

plt.show()

Output:

Matplotlib示例

实时更新图表

有时候需要在程序运行过程中实时更新图表,这时可以使用pause方法来暂停图表的显示。下面的代码演示了如何实时更新一个直方图。

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)

plt.ion()
fig, ax = plt.subplots()
for i in range(100):
    ax.clear()
    ax.hist(data[:i*10], bins=30)
    plt.pause(0.1)

plt.ioff()
plt.show()

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程