Matplotlib Figure
Matplotlib是一个用于绘制图表和数据可视化的Python库。在Matplotlib中,Figure是最常用的对象之一,它代表整个图形窗口。在这篇文章中,我们将详细介绍Matplotlib中Figure的使用方法。
创建Figure对象
要创建一个Figure对象,可以使用plt.figure()
函数。下面是一个简单的示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.show()
运行以上代码,会弹出一个空白的图形窗口。即使没有图形内容,也可以看到Figure被创建出来了。
指定Figure大小
可以通过figsize
参数来指定Figure的大小。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 6))
plt.show()
运行以上代码,会得到一个大小为8×6的空白图形窗口。
添加子图
在一个Figure对象中,可以添加多个子图。使用add_subplot()
函数可以创建一个子图。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2, 1, 1) # 创建一个2行1列的子图,当前选中第一个子图
ax2 = fig.add_subplot(2, 1, 2) # 创建一个2行1列的子图,当前选中第二个子图
plt.show()
Output:
运行以上代码,会得到一个包含两个子图的图形窗口。
子图中绘制图形
在子图中,可以绘制各种图形,比如折线图、散点图等。下面是一个示例代码,绘制一个简单的折线图:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(x, y)
plt.show()
Output:
运行以上代码,会在子图中绘制出一个sin函数的折线图。
设置Figure标题
可以使用plt.suptitle()
函数来设置Figure对象的标题。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.suptitle('My Figure Title')
plt.show()
Output:
运行以上代码,会得到一个包含标题的图形窗口。
保存Figure为图片
可以使用plt.savefig()
函数将Figure保存为图片文件。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.savefig('my_figure.png')
运行以上代码,会将当前的Figure保存为一个名为my_figure.png
的图片文件。
设置Figure的背景色
可以使用fig.set_facecolor()
函数设置Figure的背景色。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
fig.set_facecolor('lightgrey')
plt.show()
Output:
运行以上代码,会得到一个背景色为浅灰色的图形窗口。
设置Figure的透明度
可以使用fig.patch.set_alpha()
函数设置Figure的透明度。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
fig.patch.set_alpha(0.5)
plt.show()
运行以上代码,会得到一个透明度为0.5的图形窗口。
关闭Figure
使用plt.close()
函数可以关闭当前的Figure。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.show()
plt.close()
运行以上代码,会打开一个空白图形窗口,然后关闭它。
多个Figure
可以同时创建多个Figure对象,每个Figure对象代表一个独立的图形窗口。下面是一个示例代码:
import matplotlib.pyplot as plt
fig1 = plt.figure()
plt.suptitle('Figure 1')
plt.figure()
plt.suptitle('Figure 2')
plt.show()
Output:
运行以上代码,会打开两个独立的图形窗口,分别显示Figure 1和Figure 2。
设置Figure边框
可以使用fig.patch.set_linewidth()
函数设置Figure的边框粗细。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
fig.patch.set_linewidth(2)
plt.show()
运行以上代码,会得到一个有2个像素宽边框的图形窗口。
隐藏Figure坐标轴
可以使用ax.axis('off')
函数隐藏Figure中的坐标轴。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.axis('off')
plt.show()
运行以上代码,会得到一个没有坐标轴的图形窗口。
清空Figure内容
可以使用fig.clear()
函数清空Figure中的内容。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot([1, 2, 3])
plt.show()
# 清空Figure内容
fig.clear()
plt.show()
运行以上代码,会先绘制一条线,然后清空Figure内容,得到一个空白图形窗口。
设置Figure背景图片
可以使用fig.figimage()
函数在Figure中设置背景图片。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
img = plt.imread('background.jpg')
fig.figimage(img, resize=True)
plt.show()
运行以上代码,会在Figure的背景上显示一张图片。
Figure标题位置
可以使用plt.subplots_adjust(top=0.8)
函数设置Figure标题的位置。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.suptitle('My Figure Title')
plt.subplots_adjust(top=0.8)
plt.show()
Output:
运行以上代码,会将Figure标题的位置调整到顶部的80%处。
设置Figure边距
可以使用plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)
函数设置Figure的边距。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)
plt.show()
运行以上代码,会得到一个边距为10%的图形窗口。
设置Figure图例
在Figure中添加图例可以使用ax.legend()
函数。下面是一个示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot([1, 2, 3], label='Line 1')
ax.plot([3, 2, 1], label='Line 2')
ax.legend()
plt.show()
Output:
运行以上代码,会在Figure中添加一个包含两条线的图例。