数据图绘制
matplotlib的字库pyplot提供了快速绘制2D图标的API接口。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x**2)
plt.figure(figsize=(8, 4))
plt.plot(x, y, label="$sin(x)$", color="red", linewidth=2)
plt.plot(x, z, "b--", label="$cos(x^2)$")
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.title("PyPlot First Example")
plt.ylim(-1.2, 1.2)
plt.legend()
plt.show()
数据图属性配置
Figure对象
Figure对象,此对象在调用plt.figure函数时返回,通过plt.gcf函数获取当前的绘图对象
语法plt.gcf()
axes属性
Figure对象有一个axes属性,其值为AxesSubplot对象的列表,每个AxesSubplot对象代表图表
中的一个子图,前面所绘制的图表只包含一个子图,当前子图也可以通过plt.gca获得。
设置和得到属性方法
set_*
plt.setp函数配置多个Line2D对象的颜色和线宽属性
get_*
plt.getp函数获取对象的属性值
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1)
# plot函数返回一个 matplotlib.lines.Line2D 对象的列表
line, = plt.plot(x, x*x) # plot返回一个列表,通过line,获取其第一个元素
line.set_antialiased(False) # 调用Line2D对象的set_*方法设置属性值
line.get_linewidth()
# 同时绘制sin和cos两条曲线,lines是一个有两个Line2D对象的列表
lines = plt.plot(x, np.sin(x), x, np.cos(x))
# 调用setp函数同时配置多个Line2D对象的多个属性值
plt.setp(lines, color="r", linewidth=2.0)
plt.getp(lines[0], "color") # 返回color属性
plt.getp(lines[1]) # 输出全部属性
f = plt.gcf() # get current Figure 对象
plt.getp(f) # 得到当前figure对象的全部属性
plt.getp(f, "axes") # 得到当前axes属性, Figure对象有一个axes属性
# [<matplotlib.axes.AxesSubplot object at 0x05CDD170>]
plt.gca() # 得到当前axes属性, Figure对象有一个axes属性
# <matplotlib.axes.AxesSubplot object at 0x05CDD170>