在Python中进行数据可视化的时候,matplotlib是最常用的绘图库之一。绘制图形的时候,通常需要使用figure和axies两个对象。这两个对象的区别是:
在Python中进行数据可视化的时候,matplotlib是最常用的绘图库之一。绘制图形的时候,通常需要使用figure和axies两个对象。这两个对象的区别是:
- Figure是一个顶层容器,一个画布,就是我们看到的一个整体框架
- Axes是Figure中的子容器,图表绘制的地方
因为Figure中可以包含多个Axes,所以我们可以在同一个figure对象中绘制多个子图(也称为子绘图区),在每个Axes对象中进行数据绘制。下面是两个例子:
绘制多个子图
在一个figure中绘制多张图时,需要创建多个subplot,即Axes对象。下面的代码绘制了4张子图:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(-x)
# 创建figure
fig = plt.figure()
# 创建subplot
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)
# 在每个subplot中绘制数据
ax1.plot(x, y1, 'r--')
ax1.set_title('subplot 1')
ax2.plot(x, y2, 'g--')
ax2.set_title('subplot 2')
ax3.plot(x, y3, 'b--')
ax3.set_title('subplot 3')
ax4.plot(x, y4, 'y--')
ax4.set_title('subplot 4')
# 显示图形
plt.show()
在这个例子中,我们首先使用plt.figure()
函数创建一个figure对象fig,然后再用fig.add_subplot()
方法创建4个subplot对象。
自定义坐标系
使用Figure和Axes对象还可以实现自定义坐标系的功能。下面的代码就示范了如何在棱形坐标系和极坐标系中绘制数据:
import matplotlib.pyplot as plt
import numpy as np
## 棱形坐标系
fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)
ax1.spines['left'].set_position(('data', 0))
ax1.spines['bottom'].set_position(('data', 0))
x = np.linspace(-1, 1, 100)
y = x**3 - x
ax1.plot(x, y)
plt.show()
## 极坐标系
fig = plt.figure()
ax2 = fig.add_subplot(1, 1, 1, projection='polar')
theta = np.linspace(0, 2*np.pi, 50)
r = theta**2
ax2.plot(theta, r)
plt.show()
在这个例子中,我们使用了ax.spines
属性来控制坐标轴的位置,实现了一个棱形坐标系。在第二个图中,我们把projection
参数设置为'polar',就可以实现极坐标系。
本文标题为:Python中figure与axies绘图有哪些不同


基础教程推荐
- Python进程/线程/协程 2023-09-04
- 带有变量的Python子进程调用 2023-11-14
- pandas学习之df.set_index的具体使用 2022-08-30
- python3内存回收__动态类型 / 可变数据类型 / 引用计数 / 引用减少 / 垃圾回收 / 分代回收 / 孤立的引用环 2023-09-04
- 在AWS Lambda上将ImageMagick作为python子进程运行 2023-11-11
- Python实现绘制Matlab格式的地图边框的示例代码 2022-10-20
- windows下如何安装Python、pandas 2023-09-03
- python – 无法在Amazon Linux上安装gcloud:语法无效 2023-11-15
- 解决Python复杂zip文件的解压问题 2023-08-08
- 详解Python中的List 2023-08-04