赞
踩
Matplotlib是Python中一个二维绘图包,能够非常简单的实现数据可视化。Matplotlib最早由John Hunter于2002年启动开发,其目的是为了构建一个Matlab式的绘图函数接口。在Anaconda发行版中已经集成了Matplotlib库,直接导入pyplot模块就可以使用了。导入方法为:import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
plt.figure(1) # 创建第一个画布
plt.subplot(2, 1, 1) # 画布划分为2×1图形阵,选择第1张图片
<matplotlib.axes._subplots.AxesSubplot at 0x1884e0c2c50>
import numpy as np plt.figure(1) # 创建画布 x = np.linspace(0, 1, 1000) plt.subplot(2, 1, 1) # 分为2×1图形阵,选择第1张图片绘图 plt.title('y=x^2 & y=x') # 添加标题 plt.xlabel('x') # 添加x轴名称‘x’ plt.ylabel('y') # 添加y轴名称‘y’ plt.xlim((0, 1)) # 指定x轴范围(0,1) plt.ylim((0, 1)) # 指定y轴范围(0,1) plt.xticks([0, 0.3, 0.6, 1]) # 设置x轴刻度 plt.yticks([0, 0.5, 1]) # 设置y轴刻度 plt.plot(x, x ** 2) plt.plot(x, x) plt.legend(['y=x^2', 'y=x']) # 添加图例 plt.savefig('1.png') # 保存图片 plt.show()
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.2)
y = np.sin(x)
plt.title('sin曲线')
plt.plot(x, y)
plt.savefig('2.png')
plt.show()
值得注意的是默认的pyplot字体并不支持中文字符的显示,因此需要通过修改font.sans-serif参数来修改绘图时的字体,使得图形可以正常显示中文。同时,由于修改字体后,会导致坐标轴中负号“-”无法正常显示,因此需要同时修改axes.unicode_minus参数。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.2)
y = np.sin(x)
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置字体为SimHei
plt.rcParams['axes.unicode_minus'] = False # 解决负号“-”显示异常
plt.title('sin曲线')
plt.plot(x, y)
plt.savefig('2.png')
plt.show()
绘图过程中还有一个关键的问题就是坐标轴的字符刻度表示问题,比如绘制2018年-2019年某产品各个季度的销售额走势图,两年各季度的销售数据依次为:100、104、106、95、103、105、115、100(单位:万元)。一般的绘图代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8]) #季度标号
y = np.array([100,104,106,95,103,105,115,100]) #销售额
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置字体为SimHei
plt.title('某产品2018-2019各季度销售额')
plt.plot(x, y)
plt.xlabel('季度标号')
plt.ylabel('销售额(万元)')
plt.show()
横轴的意义没有突显出来,造成了图像的可读性比较差。实际上可以用xxx年xxx季度来表示,这样图像的可读性就更强。对横轴进行字符刻度标注可以通过xticks函数来实现。示例代码如下:
x = np.array([1,2,3,4,5,6,7,8]) #季度标号
y = np.array([100,104,106,95,103,105,115,100]) #销售额
v=['2018年一季度','2018年二季度','2018年三季度','2018年四季度',
'2019年一季度','2019年二季度','2019年三季度','2019年四季度']
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置字体为SimHei
plt.title('某产品2018-2019各季度销售额')
plt.plot(x, y)
plt.xlabel('季度')
plt.xticks(x, v, rotation = 45) #v为与x对应的字符刻度,rotation为旋转角度
plt.ylabel('销售额(万元)')
plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。