python使用matplotlib绘图详解(自动标记、将多条线绘制在一个图中,绘制多张图)python
plt.plot(x,y,markes,label),label表示图例,x为横坐标,y为纵坐标,markes为标记web
使用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()#显示图片,若是注释改行,即便设置了图片仍然不显示
结果:
svg
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()
结果:ui
另外若是你感受一张图中绘制的直线过多,想要每一个图中绘制五条直线,那么你能够使用figure():spa
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()
结果:3d