欢迎访问宙启技术站
智能推送

Python绘图库Matplotlib中常用的函数使用示例

发布时间:2023-06-13 03:57:49

Matplotlib是Python中最常用的绘图库之一,可以灵活地绘制各种图形,从简单的线图和散点图到复杂的3D图形和动画。下面介绍Matplotlib中常用的函数使用示例。

1. 创建图形

首先需要创建一个图形,在Matplotlib中可以使用plt.subplots函数来创建一个图形和一个子图,如下所示:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

这里的fig是整个图形的对象,ax是子图的对象,可以在其中添加各种元素,如曲线、散点等。

2. 绘制曲线

绘制曲线可以使用plt.plot函数,例如:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

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

这里先使用numpy库生成了100个0到2π之间的等间距的数值作为x轴,然后使用sin函数计算这些点所对应的y轴值,最后使用plt.plot函数将这些点连接成曲线并显示出来。结果如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136893027-a3f86d93-c8cd-422b-af8f-56b1ace6171d.png)

可以将多个曲线绘制在同一个图中,只需在plt.plot函数中传入多组数据即可,如下所示:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1)
plt.plot(x, y2)
plt.show()

这里将sin函数和cos函数的结果分别用两个不同的颜色画在同一个图中,结果如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136893327-0f5cf079-15bb-473d-acee-3c875368e1cc.png)

3. 绘制散点图

绘制散点图可以使用plt.scatter函数,例如:

import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(30)
y = np.random.rand(30)
color = np.random.rand(30)
size = np.random.rand(30) * 1000

plt.scatter(x, y, c=color, s=size)
plt.show()

这里使用numpy库生成了30个随机数值用于x轴和y轴,再生成30个0到1之间的随机数作为颜色值和大小值,并使用plt.scatter函数将这些点画在同一张图中。结果如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136893536-bd69a432-abe2-48e5-b74d-1b080eac1e38.png)

4. 添加标注和注释

在绘制图形时,可以添加各种标注和注释,例如:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title('title')
ax.text(2, 0.8, 'y=sin(x)', fontsize=10, ha='center', va='center')
ax.annotate('local max', xy=(np.pi/2, 1), xytext=(np.pi/2+0.5, 1.5),
            arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()

这里使用plt.subplots函数创建了一个图形和一个子图,然后在子图中画出了sin曲线,添加了x轴、y轴的标注和标题,使用text函数在图中添加了一段文本,并使用annotate函数在图中添加了一个注释,如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136893853-26cc2954-7e06-4255-9777-c06b4802f3da.png)

5. 设置风格和样式

Matplotlib支持多种风格和样式,可以通过plt.style来设置,例如:

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('ggplot')

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

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

这里通过plt.style.use函数将绘图的风格设置为ggplot,可以获得一种比较炫酷的效果,如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136894074-7978c1fa-931b-462b-9c95-0ef8b3871a2c.png)

还可以通过plt.colors列表来获取RGB颜色,例如:

import matplotlib.pyplot as plt
import numpy as np

colors = plt.rcParams['axes.prop_cycle'].by_key()['color']

x = np.linspace(0, 2*np.pi, 100)
for i in range(5):
    y = np.sin(x+i*np.pi/2)
    plt.plot(x, y, color=colors[i])
plt.show()

这里使用plt.rcParams['axes.prop_cycle'].by_key()['color']获取到了默认的RGB颜色列表,然后用这个颜色列表画了5个不同颜色的sin曲线,如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136906239-c7b0bdef-5a54-43f5-94d1-255c67f7176f.png)

还可以使用plt.setp函数来设置线段的样式,例如:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)

lines = ax.get_lines()
plt.setp(lines[0], linestyle='--', linewidth=2, color='r')
plt.show()

这里使用plt.setp函数将 个线段的样式设置成虚线、宽度为2、颜色为红色,如下图所示:

![image](https://user-images.githubusercontent.com/43975842/136906562-5d817569-bd49-447d-bf1d-14c0a847b316.png)

以上就是Matplotlib中常用的函数使用示例,Matplotlib提供了丰富的API和工具,可以满足绝大多数绘图需求。