-为什么使用matplotlib?-
matplotlib是一个python 2D绘图库,利用它可以画出许多高质量的图像。只需几行代码即可生成直方图,条形图,饼图,散点图等。
Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
希望本文能帮助大家了解如何将matplotlib用于自己的可视化。
Matplotlib,pyplot和pylab?
Matplotlib是整个包,pyplot是Matplotlib中的一个模块,并且pylab是一个安装在一起的模块。
pylab和pyplot的区别是,前者将numpy导入了其命名空间中,这样会使pylab表现的和matlab更加相似。现在来说我们经常使用pyplot,因为pyplot相比pylab更加纯粹。
numpy,pandas?
matplotlib是可视化的表达,那么在图形的绘制中肯定会涉及一些数据处理。
pandas和numpy则是python中最好用的两个数据分析库,使用它们,能够解决超过90%的数据分析问题。
- matplotlib 绘图上手 -
如果你还没有安装 Python 环境,那么推荐你安装 Anaconda,对于上手 Python 来说更加简单,不容易出差错。
Anaconda 的安装教程网上很多,找到对应版本客户端安装即可。安装好后,即可在终端(cmd)安装核心库 Matplotlib。
安装 Matplotlib
python -m pip install matplotlib
然后打开 Jupyter Notebook(安装好 Anaconda 后,Jupyter 也已装好,在应用窗口中可以找到),我们就可以直接上手了。
图的构成
以上图片来自matplotlib官网,它向我们展示了matplotlib的图的构成元素。
大多数元素都比较好理解:
坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)......
01 title设置
import matplotlib.pyplot as plt
plt.title("title")#括号当中输入标题的名称
plt.show()
如果title是中文,matplotlib会乱码,这时需要加上下面这段代码:
plt.rcParams['font.sans-serif']=['SimHei']
02 Figure对象
在matplotlib中,整个图像为一个Figure对象。
在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。
plt.figure(figsize=(6, 3))plt.plot(6, 3)plt.plot(3, 3 * 2)plt.show()
03 坐标轴及标签
plt.xlim(0,6) #x轴坐标轴
plt.ylim((0, 3))#y轴坐标轴
plt.xlabel('X')#x轴标签
plt.ylabel('Y')#y轴标签
plt.show()
如果需要将数字设为负数,也可能出现乱码的情况,这时候可以加下面的代码:
plt.rcParams['axes.unicode_minus']=False
04 设置label和legend
设置 label 和 legend 的目的就是为了区分出每个数据对应的图形名称,legend的loc参数用于设置图例位置。
plt.plot(2, 3, label="123")#第一个label
plt.plot(2, 3* 2, label="456")#第二个label
plt.legend(loc='best')#图列位置,可选best,center等
plt.show()