matplotlib可视化绘图详解,2021必看

如何使用Matplotlib


  • python 环境下

pip install matplotlib

  • jupyter notebook 中

!pip install matplotlib

import matplotlib.pyplot as plt #plt是别名

Matplotlib绘制图形

  • 折线图 plot
    柱状图 bar
    条形图 barh
    饼图 pie
    散点图 scatter
    直方图 hist
    箱形图 boxplot
    子图 subplot

2、Matplotlib图形绘制

================

1)折线图


  • 折线图(line chart)是一种将数据点按照顺序连接起来的图形,折线图是排列在工作表的列或行中的数据可以绘制到折线图中,折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。

plt.figure(figsize=(10,6))#调整画布大小

plt.plot(data[“日期”],data[“自配送销售额”],color=‘y’)#通过color调整颜色

plt.xticks(rotation=45)#x轴倾斜的角度

plt.show()

其中颜色可以设置成很多,下表为部分:

'r' 红色
'g' 绿色
'b' 蓝色
'c' 青色
'm' 品红
'y' 黄色
'k' 黑色
'w' 白色
浅粉红 #FFB6C1
猩红 #DC143C

最底下为rgb颜色值,可以查看[RGB颜色值与十六进制颜色码转换工具](

)里边比较详细

plt.figure(figsize=(10,5))

plt.plot(data[“日期”],data[“总销售额”],color=‘r’,linewidth=0.5,marker="*",linestyle=’-.’)

plt.plot(data[“日期”],data[“FBA销售额”],color=‘g’,linewidth=0.5,marker=“2”,linestyle=’-’)

plt.plot(data[“日期”],data[“自配送销售额”],color=‘y’,linewidth=0.5,marker=“s”,linestyle=’–’)

plt.xticks(rotation=45)#旋转x轴标注

font = {

“family”:“kaiti”, # 设置字体的样式

“size”:“20” # 设置字体的大小

}

plt.rc(“font”,**font)

#设置X轴标签

plt.xlabel(“时间”)

#设置y轴标签

plt.ylabel(“数额”)

plt.show()

#linewidth是设置线的宽度

#marker是设置线的拐点标记样式

常用字体名称:

楷体 kaiti
黑体 SimHei
微软雅黑 Microsoft YaHei
新宋体 NSimSun
仿宋_GB2312 FangSong_GB2312
楷体_GB2312 KaiTi_GB2312

常用线型:

  • 实线 '-'
    点虚线 ':'
    破折线 '--'
    点划线 '-.'
    不画线 '' 或 ' '

常用标记:

  • "."
    上三角 "^"
    上三叉 "2"
    正方形 "s"
    星号 "*"

matplotlib可视化绘图详解,2021必看_第1张图片

h:255px;">菱形"D"渲染指定的字符。例如 “ f f f” 以字母 f 为标记。’ . . . ... ...

2)柱状图


  • 柱形图,又称长条图、柱状统计图(德文: Säulendiagramm、英文:bar chart、西班牙文: diagrama de barras)亦称条图、条状图、棒形图,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align=‘center’, data=None, **kwargs)

参数说明:

x:浮点型数组,柱形图的 x 轴数据。

height:浮点型数组,柱形图的高度。

width:浮点型数组,柱形图的宽度。

bottom:浮点型数组,底座的 y 坐标,默认 0。

align:柱形图与 x 坐标的对齐方式,‘center’ 以 x 位置为中心,这是默认值。 ‘edge’:将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align=‘edge’。

**kwargs::其他参数。

plt.figure(figsize=(10,5))

plt.bar(data[“排序”],data[“销量”])

##调整画布外框颜色 上:top 下: bottom 左:left 右:right

ax=plt.gca()

ax.spines[“top”].set_color(“w”)

ax.spines[“bottom”].set_color(“r”)

ax.spines[“left”].set_color(“r”)

ax.spines[“right”].set_color(“w”)

##调整x、y轴刻度

plt.xlim(data.index.values[0],data.index.values[-1]) #x轴从0开始到最后一个 0第一个 -1最后一个

plt.ylim(np.min(data[“销量”]),np.max(data[“销量”])) #最小到最大

plt.show()

3)条形图


  • 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形。条形图可以横置或纵置,纵置时也称为柱形图(column chart)。此外,条形图有简单条形图、复式条形图等形式。

plt.figure(figsize=(10,5))

plt.barh(data[“排序”],data[“销量”])

##调整画布外框颜色 上:top 下: bottom 左:left 右:right

ax=plt.gca()

ax.spines[“top”].set_color(“w”)

ax.spines[“bottom”].set_color(“r”)

ax.spines[“left”].set_color(“r”)

ax.spines[“right”].set_color(“w”)

##调整x、y轴刻度

plt.xlim(np.min(data[“销量”]),np.max(data[“销量”])) #x轴从0开始到最后一个 0第一个 -1最后一个

plt.ylim(data.index.values[0],data.index.values[-1]) #最小到最大

plt.show()

  • 条形图就是把柱状图放倒,调整X、Y轴即可

3)饼图


matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]

参数说明:

x:浮点型数组,表示每个扇形的面积。

explode:数组,表示各个扇形之间的间隔,默认值为0。

labels:列表,各个扇形的标签,默认值为 None。

colors:数组,表示各个扇形的颜色,默认值为 None。

autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。

labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。

pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。

shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。

radius::设置饼图的半径,默认为 1。

startangle::起始绘制饼图的角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。

counterclock:布尔值,设置指针方向,默认为 True,即逆时针,False 为顺时针。

wedgeprops :字典类型,默认值 None。参数字典传递给 wedge 对象用来画一个饼图。例如:wedgeprops={‘linewidth’:5} 设置 wedge 线宽为5。

textprops :字典类型,默认值为:None。传递给 text 对象的字典参数,用于设置标签(labels)和比例文字的格式。

center :浮点类型的列表,默认值:(0,0)。用于设置图标中心位置。

frame :布尔类型,默认值:False。如果是 True,绘制带有表的轴框架。

rotatelabels :布尔类型,默认为 False。如果为 True,旋转每个 label 到指定的角度。

plt.figure(figsize=(10,5))

sum_sale=np.sum(data[“总销售额”])

font={

“family”:“kaiti”

,“size”:“15”

}

plt.rc(“font”,**font)

fba_sale=np.sum(data[“FBA销售额”])

self_sale=np.sum(data[“自配送销售额”])

plt.pie([sum_sale,fba_sale,self_sale]

,labels=[“总销售额”,“FBA销售额”,“自配送销售额”]

,colors=[“m”,“b”,“g”] #设置饼图颜色

,shadow=True #是否设置阴影

,labeldistance=1.2 #标签距图表的距离

,autopct="%.2f%%" ##设置显示数字样式

,startangle=60 ##旋转角度

,explode=[0.1,0,0]

)

plt.title(“统计”,loc=“center”)#center中间

plt.show()

4)散点图


  • 散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通常用于比较跨类别的聚合数据。

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

参数说明:

x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。

s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。

c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。

marker:点的样式,默认小圆圈 ‘o’。

cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。

norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。

vmin,vmax::亮度设置,在 norm 参数存在时会忽略。

alpha::透明度设置,0-1 之间,默认 None,即不透明。

linewidths::标记点的长度。

edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。

plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。

**kwargs::其他参数。

plt.scatter(data[“平均单个订单成本”],data[“订单额”]

, color=(“red”,“green”,“black”,“orange”,“purple”,“beige”,“cyan”,“magenta”,“cyan”,“magenta”)#设置球的颜色

,s=data[“订单额”]#设置球的大小

,marker=“h”#设置球的形状

,linewidths=4#设置球边界的宽度

,edgecolors=‘b’#设置边界的颜色

,alpha=0.5#设置透明度

)#设置球的形状

plt.xlabel(“订单成本”)

plt.ylabel(“订单额”)

plt.show()

5)直方图

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述
较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

你可能感兴趣的:(程序员,面试,经验分享,开发语言)