📅  最后修改于: 2023-12-03 15:25:14.645000             🧑  作者: Mango
在做数据处理时,可能需要从 plt 绘制的图像中获取数据。可以通过将 plt 绘制的图像转换成 numpy 数组来实现。下面就是一些方法。
plt.imread() 可以读取图像文件,返回的是一个 numpy 数组。
import matplotlib.pyplot as plt
import numpy as np
# 读取图像
img = plt.imread('image.png')
# 将图像转换为 numpy 数组
img_arr = np.array(img)
plt.plot() 可以绘制曲线,并返回曲线的 x,y 值。我们可以通过调整参数来使得曲线更加平滑。
import matplotlib.pyplot as plt
import numpy as np
# 绘制曲线
x = np.linspace(-10,10,100)
y = np.sin(x)
plt.plot(x,y)
# 将曲线转换为 numpy 数组
line = plt.gca().get_lines()[0]
x,y = line.get_data()
line_arr = np.array([x,y]).T
plt.imshow() 可以显示图像,并且返回一个 matplotlib.image.AxesImage 对象。我们可以使用 AxesImage 对象的 data 属性来获取图像的数据。
import matplotlib.pyplot as plt
import numpy as np
# 显示图像
img = plt.imread('image.png')
plt.imshow(img)
# 将图像转换为 numpy 数组
axes = plt.gca()
image = axes.get_images()[0]
img_arr = image.get_array()
通过以上方式,我们可以轻松将 plt 图像转换为 numpy 数组,从而更方便地进行数据处理。