1.Matplotlib简介
Matplotlib是一个用于绘制数据可视化图表的Python库。它提供了广泛的功能和灵活性,可以创建各种类型的图表,包括折线图、散点图、柱状图、饼图、等高线图和3D图形等。
Matplotlib的设计灵感来自于MATLAB,因此它的使用方法与MATLAB中的绘图函数相似。它被广泛应用于科学、工程、统计和数据分析等领域,成为Python中最常用的数据可视化工具之一。
Matplotlib的核心组件是一个面向对象的绘图库。可以通过创建Figure对象和一个或多个Axes对象来控制图形的外观和布局。Figure对象代表整个图形窗口或画布,而Axes对象则表示实际的绘图区域。可以使用各种方法和函数来设置图形的属性、添加图例、标签、标题,以及自定义坐标轴、颜色和线型等。
Matplotlib还支持使用Numpy和Pandas等库进行数据操作和处理,并可以与Jupyter Notebook等交互式环境无缝集成,方便快捷地进行数据可视化和分析。
2.Matplotlib绘图基础
2.1 创建画布与子图
- plt.figure:创建一个空白画布,可以指定画布大小
- figure.add_subplot:创建并选中子图,可以指定子图行数、列数与选中图片编号
- fig,axes=plt.subplots(m,n):生成m行n列个子图
绘制子图:
import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(2,2,1) ax2 = fig.add_subplot(2,2,2) ax3 = fig.add_subplot(2,2,3) ax1.plot([1.5,2,3.5,-1,1.6])
输出结果:
创建子图序列并调整子图周围间距:
import matplotlib.pyplot as plt import numpy as np fig,axes = plt.subplots(2,2,sharex = True,sharey = True) for i in range(2): for j in range(2): axes[i,j].hist(np.random.randn(500),bins =50,color='k',alpha= 0.5) plt.subplots_adjust(wspace=0,hspace=0)
输出结果:
2.2 添加画布属性
- plt.title:添加图形标题
- plt.xlabel:在当前图形中添加X轴名称
- plt.ylabel:在当前图形中添加Y轴名称
- plt.xlim:指定当前图形X轴范围
- plt.ylim:指定当前图形Y轴范围
- plt.xticks:指定X轴刻度的数目与取值
- plt.yticks:指定Y轴刻度的数目与取值
- plt.legend:指定当前图形的图例,可以指定图例的大小、位置、标签
示例:
import matplotlib.pyplot as plt import numpy as np data = np.arange(0,np.pi*2,0.01) fig1 = plt.figure(figsize = (8,4),dpi = 90) #确定画布大小 ax1 = fig1.add_subplot(1,2,1) #绘制第1幅子图 plt.title('lines example') plt.xlabel('X') plt.ylabel('Y') plt.xlim(0,1) plt.ylim(0,1) plt.xticks([0,0.2,0.4,0.6,0.8,1]) plt.yticks([0,0.2,0.4,0.6,0.8,1]) plt.plot(data,data**2) plt.plot(data,data**3) plt.legend(['y = x^2','y = x^3']) ax1 = fig1.add_subplot(1,2,2) #绘制第2幅子图 plt.title('sin/cos') plt.xlabel('X') plt.ylabel('Y') plt.xlim(0,np.pi*2) plt.ylim(-1,1) plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2]) plt.yticks([-1,-0.5,0,0.5,1]) plt.plot(data,np.sin(data)) plt.plot(data,np.cos(data)) plt.legend(['sin','cos']) plt.show()
结果:
2.3 绘图的保存与显示
绘图显示和保存的函数:
- plt.savefig:保存绘制的图片
- plt.show:显示图形
savefig选项及其说明:
- fname:包含文件路径或python文件型对象的字符串
- dpi:分辨率,默认为100
- facecolor,edgecolor:子图之外的图形背景颜色
- format:文件格式