import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
# 数据集1
n1 = [1206, 1174, 1141, 1116, 1037, 986]
Id1 = [0.505, 0.55, 0.595, 0.648, 0.727, 0.799]
# 数据集2
n2 = [596.7, 702.2, 810.4, 919.2, 1012, 1197]
Id2 = [0.306, 0.343, 0.372, 0.409, 0.445, 0.509]
# 数据集3
n3 = [600.6, 718.8, 875.6, 908.4, 1115, 1200]
Id3 = [0.378, 0.389, 0.405, 0.412, 0.437, 0.458]
# 绘制折线图
plt.figure()
# 开环特性 有静差(P)调节 无静差(PI调节)
# 数据集1折线
plt.plot(Id1, n1, marker='o', linestyle='-', label='开环特性', color='r')
for x, y in zip(Id1, n1):
plt.text(x, y, f'({x:.2f},{y:.2f})', fontsize=9, horizontalalignment='center', color='r')
# 数据集2折线
plt.plot(Id2, n2, marker='s', linestyle='--', label='有静差(P)调节', color='g')
for x, y in zip(Id2, n2):
plt.text(x, y, f'({x:.2f},{y:.2f})', fontsize=9, horizontalalignment='center', color='g')
# 数据集3折线
plt.plot(Id3, n3, marker='^', linestyle='-.', label='无静差(PI调节)', color='b')
for x, y in zip(Id3, n3):
plt.text(x, y, f'({x:.2f},{y:.2f})', fontsize=9, horizontalalignment='center', color='b')
# 设置图表属性
plt.xlabel('Id')
plt.ylabel('n')
plt.title('直流电机开闭环特性曲线')
# lengend不要挡住字
plt.legend(loc='lower right')
plt.grid(True)
plt.tight_layout()
# save
plt.savefig("Id_vs_n.png", dpi=300) # 设置dpi为300
# 显示图表
plt.show()