视觉化数据的艺术:掌握Matplotlib基础绘图

发布于:2024-04-20 ⋅ 阅读:(27) ⋅ 点赞:(0)

Matplotlib基础绘图


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官网
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到