基础折线图
import numpy as np
import matplotlib.pyplot as plt
PI = np.pi
x = np.linspace(0, 2*PI, 21) # 创建一维数组,包含起止点
y1 = np.sin(x)
y2 = np.cos(x)
# 创建绘图板,设置绘图尺寸
plt.figure(figsize=(6, 2), dpi=100) # 设置画布尺寸和分辨率
# 绘制折线图
plt.plot(x, y1, linewidth=1, linestyle="--", marker="o", markersize=6, label="sine") # label为图例标签
plt.plot(x, y2, linewidth=2, linestyle="solid", marker="^", markersize=6, label="cosine")
plt.legend(loc="best", fontsize=10) # 设置图例,loc设定图例位置
plt.show()
高级折线图
import numpy as np
import matplotlib.pyplot as plt
PI = np.pi
x = np.linspace(0, 2*PI, 21) # 创建一维数组,包含起止点
y1 = np.sin(x)
y2 = np.cos(x)
# 创建绘图板,设置绘图尺寸
plt.figure(figsize=(6, 2), dpi=100) # 设置画布尺寸和分辨率
# 绘制折线图
plt.plot(x, y1, linewidth=1, linestyle="--", marker="o", markersize=6, label="sine") # label为图例标签
plt.plot(x, y2, linewidth=2, linestyle="solid", marker="^", markersize=6, label="cosine")
plt.legend(loc="best", fontsize=10) # 设置图例,loc设定图例位置
# 设置中文字体
"""
plt不能直接显示中文,rcParams为全局参数,应用于图中所有文字。
字体名称可查看C:\Windows\Fonts文件夹中的字体
"""
plt.rcParams["font.family"] = "simsun" # 字体名称,宋体
plt.rcParams["font.size"] = 12 # 字体高度
plt.rcParams["font.style"] = "normal" # normal正常,italic斜体
# 设置显示负号
plt.rcParams["axes.unicode_minus"] = False # plt不能直接显示负号
# 显示中文第二种方法,在输出中文的地方增加fontproperties
# plt.title(label="三角函数", fontproperties="Simhei", fontsize=16)
# 设置全局参数
# plt.rcParams["lines.linewidth"] = 1
# 添加图名、坐标轴标签和注释
plt.title(label="三角函数", fontsize=20) # 图名
plt.xlabel(xlabel="角度", fontsize=16) # x坐标轴标签
plt.ylabel(ylabel="函数值", fontsize=16) # y坐标轴标签
plt.text(PI, 0.1, r"($\pi$,0)") # 文本注释,前两个参数为x、y定位坐标,第三个参数为注释
plt.annotate("peak", (PI/2, 1), (2, 0), fontsize=16,
arrowprops=dict(color="orange", width=2)) # 带箭头注释
# 设置坐标轴刻度及刻度标签,标签的数量要与刻度数量一致,主次刻度可以分开设置
# r"$pi$"、r"$alpha$"为latex表达式,用来表示特殊符号、公式等
plt.xticks(ticks=np.linspace(0, 2*PI, 5), labels=["0",r"$\pi$/2",
r"$\pi$",r"3$\pi$/2",r"2$\pi$"], fontsize=10, rotation=45) # x轴主刻度,ticks为刻度,label为刻度标签
plt.xticks(ticks=np.linspace(0, 2*PI, 21), minor=True) # x轴次刻度
plt.yticks(ticks=[-1,0,1], fontsize=10) # y轴主刻度
plt.yticks(ticks=np.linspace(-1, 1, 5), minor=True) # y轴次刻度
plt.axis([0, 2*PI, -1, 1]) # 设置坐标轴范围,前两个数为x轴范围,后两个为y轴范围
# plt.axis("off") # 设置坐标轴可见性
# 设置网格,网格是基于坐标轴刻度
plt.grid(True, which="major", linewidth=1, axis="both") # 主网格沿xy轴
plt.grid(True, which="minor", lw=1, ls="--", alpha=0.5) # 次网格,透明度0.5
plt.show() # 显示绘图窗口