Matplotlib基础绘图
文章目录
- Matplotlib基础绘图
- 1.基础流程
- 2.绘图设置
- 3.动态rc参数
- 4.pyplot的基础图表函数
- 安利
1.基础流程
1.导入模块。绘图之前,需要先导入包含相应函数的模块。
2.创建画布与创建子图。第一部分主要是构建出一张空白的画布,如果需要同时展示几个图形,可将画布划分为多个部分。然后使用对象方法来完成其余的工作,示例如下。
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号(数字)或名称(字符串),可以通过这个参数来激活不同的画布
figsize:画布的宽和高,单位:英寸
dpi:指定绘图对象的分辨率,每英寸包含多少个像素,像素越大,画布越大,默认值为80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框,True:绘制边框(默认值)
3.添加画布内容。第二部分是绘图的主体部分。一个图形可以包含任意数量的轴,但通常至少有一个,每个轴都可以设置一个轴标签。常见的是二维坐标轴,即包含 X 轴(横轴)和 Y 轴(纵轴), 轴上可以设置刻度标签。使用 Matplotlib 模块画坐标图时, 往往需要对坐标轴设置很多参数, 这些参数包括横纵 坐标轴范围、坐标轴刻度大小、坐标轴名称等
添加标题、坐标轴名称等步骤与绘制图形是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签,但是添加图例一定要在绘制图形之后。pyplot模块中添加各类标签和图例的函数如下表所示。
4.图形保存与展示。绘制图形之后,可使用matplotlib.pyplot.savefig()
函数保存图片到指定路径,使用matplotlib.pyplot.show()
函数展示图形。
提示:以下是本篇文章正文内容,下面案例可供参考
2.绘图设置
最基本的绘图函数是绘制曲线函数plot。
plot(y)
%绘制以y为纵坐标的二维曲线
plot(x,y)
%绘制以x为横坐标y为纵坐标的二维曲线
plot(x1,y1,x2,y2…)
%在同一窗口绘制多条二维曲线
说明:x和y可以是实数向量或矩阵,也可以是复数向量或矩阵。
颜色设置:(color)
线条样式:(linestyle)
标记样式:(marker)
设置坐标轴(x轴:xlabel,y轴:ylabel)
x轴语法:
matplotlib.pyplot.xlabel(xlabel, fontdict=None,labelpad=None,**kwargs)
xlabel:标签文本。并且包含字符串值
y轴语法:
matplotlib.pyplot.ylabel(ylabel, fontdict=None,labelpad=None,**kwargs)
ylabel:标签文本。并且包含字符串值
中文乱码问题的解决方法:
matplotlib.pyplot.rcParams['font.sans-serif'] = ['SimHei']
负号不显示问题的解决方法:
plt.rcParams['axes.unicode_minus'] = False
坐标轴刻度(x轴:xticks,y轴:yticks)
x轴语法:
matplotlib.pyplot.xticks(locs,[labels],**kwargs)
y轴语法:
matplotlib.pyplot.yticks(locs,[labels],**kwargs)
坐标轴范围(x轴:xlim,y轴:ylim)
matplotlib.pyplot.xlim(1,10)
matplotlib.pyplot.ylim(1,10)
网格线(grid)
matplotlib.pyplot.grid()
添加文本标签(text)
matplotlib.pyplot.text(x,y,s,fontdict=None,withdash=False,**kwargs)
设置标题(title)
matplotlib.pyplot.title(label,fontdict=None,loc='center',pad=None,**kwargs)
设置图例(legend)
matplotlib.pyplot.legend(*args, **kwargs)
调整图表与画布边缘间距(subplots_adjust)
matplotlib.pyplot.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)
left,bottom,right,top:调整上下左右的空白,left和bottom值越小,空白越小,right和top,值越大,空白越小(画布是从左下角开始,取值0~1)
x,y轴刻度线显示方向语法:
matplotlib.pyplot.rcParams['xtick.direction'] = 'in' matplotlib.pyplot.rcParams['ytick.direction'] = 'in'
参数说明:
direction:将刻度置于坐标轴内、轴外,或同时置于两者 ‘,{‘in’, ‘out’, ‘inout’}可选,默认 ‘out’
3.动态rc参数
4.pyplot的基础图表函数
1.折线图 plot()
2.散点图 scatter()
3.直方图 hist()
4.条形图 bar()
5.饼图 pie()
6.面积图 stackplot()
matplotlib.pyplot.stackplot(x,,*args,data=None,**kwags)
7.热力图 imshow()
matplotlib.pyplot.imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=True, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)
X
: 要显示的图像或数组。
cmap
: 颜色映射,默认为None
。可以是特定颜色映射的字符串名称,也可以是matplotlib.colors.Colormap
实例。
norm
:用于将数据值标准化到 0-1 范围内的 matplotlib.colors.Normalize
实例,默认为None
。
aspect
:表示图像的纵横比,如 ‘equal’, ‘auto’ 或一个数字,默认为None
。
interpolation
: 图像显示时使用的插值算法,默认为None
。常用的插值方法有 ‘nearest’,‘bilinear’, ‘bicubic’, 'spline16’ 等。
alpha
:(0-1 之间的数值)图像的透明度,默认为 None
。
8.箱线图 boxplot()
计算方法:
1).数据集:7,36,15,39,41,40
2).按从小到大的顺序对数据集进行排列:7,15,36,39,40,41
3)确定四分位数索引位置的根据公式:1+(n-1)*数据的百分比分位点,在根据索引位置确定索引所对应的数据值(n是数据集的数量 n=6)·
Q1_position=1+(6-1)0.25=2.25 (Q1在第二个数和第三个数之间)
Q1_value=15+(36-15)(2.25-2)=20.25·
Q2_position=1+(6-1)0.5=3.5 (Q2在第三个数和第四个数之间)
·Q2_value=36+(39-36)(3.5-3)=37.5
·Q3_position=1+(6-1)0.75=4.75 (Q3在第四个数和第五个数之间)·
Q3_value=39+(40-39)(4.75-4)=39.75·
上限=39.75+(39.75-20.25)1.5=69·
下限=20.25-(39.75-20.25)1.5=-9
极端异常值:
·极端上限:上限=Q3+3(Q3-Q1)·
极端下限:下限=Q1-3(Q3-Q1)·
极端异常值的判定标准:当变量的数据值大于极端上限或小于极端下限时,判定为极端异常值
9.三维柱形图 axes3d.bar()
mpl_toolkits.mplot3d.axes3d.bar(left, height, zs=0, zdir=‘z’, *args, **kwargs)
参数说明:
left:x轴数据集
height:柱子的高度
zs:z轴的数据集
zdir:可选参数{‘x’, ‘y’, ‘z’}, 默认: ‘z’
绘制多个子图表
使用matplotlib.pyplot.subplots
函数
matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True,width_ratios=None, height_ratios=None,subplot_kw=None, gridspec_kw=None, **fig_kw)
参数说明:
nrows,ncols:将画布分成几行几列
sharex,sharey:表示坐标轴的属性是否相同
subplot_kw:把字典的关键字传递给add_subplot来创建每个子图
gridspec_kw:把字典的关键字传递给GridSpec构造函数创建网格区域
fig_kw:把所有详细的关键字参数传给figure
安利
Seaborn
库:Seaborn属于Matplotlib的一个高级接口,使得作图更加容易。在多数情况下使用Seaborn能做出很具吸引力的图,而使用Matplotlib可以制作具有更多特色的图。应该把Seaborn视为Matplotlib的补充,而不是替代物
Seaborn官网