python使用matplotlib绘图详解(自动标记、将多条线绘制在一个图中,绘制多张图)
plt.plot(x,y,markes,label),label表示图例,x为横坐标,y为纵坐标,markes为标记
-
使用for循环将多条线段绘制在一个图中
import numpy as np import matplotlib.pyplot as plt num = np.arange(40).reshape(10,4)#生成10行4列的数组 plt.rcParams['font.sans-serif'] = ['SimHei']#可以plt绘图过程中中文无法显示的问题 plt_label = 0 for link in range(len(num)): plt_label += 1 plt.plot(num[0],num[link],label = '第'+ str(plt_label) + '条线段') plt.legend()#显示图例,如果注释改行,即使设置了图例仍然不显示 plt.show()#显示图片,如果注释改行,即使设置了图片仍然不显示
结果:
- 为了更好的区分直线,可能需要对数据点进行标记,标记可以使用markes
import numpy as np
import matplotlib.pyplot as plt
num = np.arange(40).reshape(10,4)#生成10行4列的数组
plt.rcParams['font.sans-serif'] = ['SimHei']#可以解释中文无法显示的问题
plt_label = 0
for link in range(len(num)):
plt_label += 1
markes = ['-o', '-s', '-^', '-p', '-^', '-v', '-p', '-d', '-h', '-2', '-8', '-6']
plt.plot(num[0],num[link],markes[link],label = '第'+ str(plt_label) + '条线段')
plt.legend()
plt.show()
结果:
-
另外如果你感觉一张图中绘制的直线过多,想要每个图中绘制五条直线,那么你可以使用figure():
import numpy as np import matplotlib.pyplot as plt num = np.arange(40).reshape(10,4)#生成10行4列的数组 plt.rcParams['font.sans-serif'] = ['SimHei']#可以解释中文无法显示的问题 plt_label = 0 for link in range(len(num)): plt_label += 1 markes = ['-o', '-s', '-^', '-p', '-^', '-v', '-p', '-d', '-h', '-2', '-8', '-6'] half = len(num)/2 if link < half: plt.figure('第一个图片') plt.plot(num[0],num[link],markes[link],label = '第'+ str(plt_label) + '条线段') plt.legend() else: plt.figure('第二个图片') plt.plot(num[0],num[link],markes[link],label = '第'+ str(plt_label) + '条线段') plt.legend() plt.show()
结果: