iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python用matplotlib可视化绘图详解
  • 318
分享到

python用matplotlib可视化绘图详解

2024-04-02 19:04:59 318人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、Matplotlib 简介2、Matplotlib图形绘制1)折线图2)柱状图3)条形图3)饼图4)散点图5)直方图6)箱型图7)子图1、Matplotlib 简介 Matp

1、Matplotlib 简介

Matplotlib 简介:

  • Matplotlib 是一个python的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,matplotlib 对于图像美化方面比较完善,可以自定义线条的颜色和样式,可以在一张绘图纸上绘制多张小图,也可以在一张图上绘制多条线,可以很方便地将数据可视化并对比分析。
  • excel绘制相关图标相比,使用Matplotlib绘制自由度更高,并且能解决excel无法绘制数据量较大、维度较多的图表问题。

如何使用Matplotlib:

Python 环境下 :

pip install matplotlib

jupyter notebook 中:

!pip install matplotlib

(强烈建议安装anaconda,一些常用的包就不用在单独安装了)安装了anaconda了,直接导包就行  

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
仿宋_GB2312FangSong_GB2312
楷体_GB2312KaiTi_GB2312

常用线型:

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

用标记:

"."
上三角"^"
上三叉"2"
正方形"s"
星号"*"
菱形"D"
渲染指定的字符。例如 "$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)直方图

直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。

plt.figure(figsize=(20,5))
data1 = data[data["数量"]>20]
plt.hist(data1["数量"],
        bins=data1.index.values[-1] #xz轴上展示多少
          ,align = "mid" 
        , density=True#频率频数设置
        )
plt.xlim(10)
plt.show()

6)箱型图

箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

plt.boxplot(data[data["销量"]<3000]["销量"])
plt.show()

横线上边的可以看做是异常值,也叫离群点  ,横线是上限值,依次往下是上4分位、中位数、下4分位数、下限
- 上4分位数的意思是全部数据中有4分之一的数据比它大
-下4分位数的意思是全部数据中有4分之一的数据比它小
- 中位数的意思就是位于中间的数据
-上4分位减去下4分位数代表着4分位的间距,那么异常值(离群点)就是大于  (上四分位 + 1.5 * 四分位间距) 或小于(下4分位 - 1.5*四分位间距)的数字
- 上限值就是等于(上4分位 + 1.5 * 四分位间距)的值 

多个箱型图绘制

dataa = [data[data["销量"]<2000]["销量"],data[data["销量"]<3000]["销量"]]
plt.boxplot(dataa  # dataa中包含多少元素 就会绘制几个箱型图
           ,notch=True  # 是否展示凹口
           ,sym="*" # 设置异形点的形状
           ,vert=False # 箱型图的摆放方式,True就是垂直,False就是横着
            ,whis=2  # 定义异常,默认是1.5这个参数也就是上下四分位距离的倍数
            ,labels=["箱型图a","箱型图b"] # 说明
            ,showmeans=True   # 展示平均值
            ,meanline=True  # 以线的形式来展示平均值,前提是showmeans=True
            ,showfliers=True  # 是否显示异常值
            ,meanprops=dict(markerfacecolor="r", marker="s")
            ,widths=0.5
           )
plt.show()

7)子图

我们可以使用 pyplot 中的subplot()subplots() 方法来绘制多个子图。

subplot() 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个,在调用时只需要调用生成对象的 ax 

subplots() 方法语法格式如下:

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

rows:默认为 1,设置图表的行数。
ncols:默认为 1,设置图表的列数。
sharex、sharey:设置 x、y 轴是否共享属性,默认为 false,可设置为 'none'、'all'、'row' 或 'col'。 False 或 none 每个子图的 x 轴或 y 轴都是独立的,True 或 'all':所有子图共享 x 轴或 y 轴,'row' 设置每个子图行共享一个 x 轴或 y 轴,'col':设置每个子图列共享一个 x 轴或 y 轴。
squeeze:布尔值,默认为 True,表示额外的维度从返回的 Axes(轴)对象中挤出,对于 N*1 或 1*N 个子图,返回一个 1 维数组,对于 N*M,N>1 和 M>1 返回一个 2 维数组。如果设置为 False,则不进行挤压操作,返回一个元素为 Axes 实例的2维数组,即使它最终是1x1。
subplot_kw:可选,字典类型。把字典的关键字传递给 add_subplot() 来创建每个子图。
gridspec_kw:可选,字典类型。把字典的关键字传递给 GridSpec 构造函数创建子图放在网格里(grid)。
**fig_kw:把详细的关键字参数传给 figure() 函数。

plt.figure(figsize=(10,5))#设置画布大小
x=np.arange(1,200)
plt.subplot(221)#在第一个位置画折线图
plt.plot(x,x+x)
plt.subplot(222)#第二个位置绘制散点图
plt.scatter(np.arange(0,20),np.random.rand(20))
plt.subplot(223)#第三个位置绘制饼图
plt.pie(x=[1,2,3,4],labels=['a','b','c','d'])
plt.subplot(224)#第四个位置绘制柱状图
plt.bar(x=[1,2,3,4],height=[2,3,6,5])
plt.show()

到此这篇关于 python用matplotlib可视化绘图详解的文章就介绍到这了,更多相关matplotlib可视化绘图详解内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python用matplotlib可视化绘图详解

本文链接: https://www.lsjlt.com/news/161959.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python matplotlib可视化绘图详解
    目录一、绘制线性图形二、绘制柱状图形三、绘制直方图四、绘制散点图五、绘制极坐标六、绘制饼图总结一、绘制线性图形 执行如下代码 import matplotlib.pyplot a...
    99+
    2022-11-12
  • python用matplotlib可视化绘图详解
    目录1、Matplotlib 简介2、Matplotlib图形绘制1)折线图2)柱状图3)条形图3)饼图4)散点图5)直方图6)箱型图7)子图1、Matplotlib 简介 Matp...
    99+
    2022-11-12
  •  python如何用matplotlib可视化绘图
    本篇文章为大家展示了 python如何用matplotlib可视化绘图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、Matplotlib 简介Matplotlib 简介:Matplot...
    99+
    2023-06-26
  • Python matplotlib数据可视化图绘制
    目录前言1.折线图2.直方图3.箱线图4.柱状图5.饼图6.散点图前言 导入绘图库: import matplotlib.pyplot as plt import numpy as ...
    99+
    2022-11-11
  • Python matplotlib可视化之绘制韦恩图
    目录本文速览1、matplotlib_venn(1)2组数据venn图(2)3组数据venn图2、pyvenn2组数据venn3组数据venn4组数据venn5组数据venn6组数据...
    99+
    2022-11-13
  • Python可视化Matplotlib折线图plot用法详解
    目录1.完善原始折线图 — 给图形添加辅助功能1.1 准备数据并画出初始折线图1.2 添加自定义x,y刻度1.3 中文显示问题解决1.4 添加网格显示1.5 添加描述信息1.6 图像...
    99+
    2022-11-12
  • Python可视化Matplotlib散点图scatter()用法详解
    散点图是数据分析中非常常用的图形。用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。 特点:判断变量之间是否存在数量关联趋势,展示离群...
    99+
    2022-11-12
  • Python matplotlib绘图详解
    目录图标英文显示设置:一、figure窗口及坐标轴设置  二、为特殊点加注解(Annotation)总结图标英文显示设置: 正常以字符串形式传进去字串,英文显示...
    99+
    2022-11-12
  • Python Matplotlib数据可视化绘图之(三)————散点图
    文章目录 前言一、所用到的模块二、单一颜色的普通不分组散点图1.示例数据如下2.代码如下2.1 代码如下(示例):2.1.1 Case1: 三、多种颜色的普通不分组散点图1....
    99+
    2023-10-26
    matplotlib python 开发语言 pycharm numpy
  • Python数据可视化之用Matplotlib绘制常用图形
    目录一、散点图二、柱状图三、直方图四、扇形图总结一、散点图 散点图用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。 特点:判断变量之间是否存在数量关联趋势,表示离群点...
    99+
    2022-06-02
    Matplotlib绘制常用图形 Python Matplotlib库
  • Python绘图之详解matplotlib
    一、matplotlib介绍 matplotlib是python从matlab继承的绘图库,可以满足大部分的日常使用,是目前最流行的底层绘图库。 二、matplotlib的使用 (一...
    99+
    2022-11-12
  • Python利用matplotlib模块数据可视化绘制3D图
    目录前言1 matplotlib绘制3D图形2 绘制3D画面图2.1 源码2.2 效果图3 绘制散点图3.1 源码3.2 效果图4 绘制多边形4.1 源码4.2 效果图5 三个方向有...
    99+
    2022-11-13
  • Python数据可视化绘图实例详解
    目录利用可视化探索图表1.数据可视化与探索图2.常见的图表实例数据探索实战分享1.2013年美国社区调查2.波士顿房屋数据集利用可视化探索图表 1.数据可视化与探索图 数据可视化是指...
    99+
    2022-11-11
  • python数据可视化matplotlib绘制折线图示例
    目录plt.plot()函数各参数解析各参数具体含义为:x,ycolorlinestylelinewidthmarker关于marker的参数plt.plot()函数各参数解析 pl...
    99+
    2022-11-13
  • Python 数据可视化之Matplotlib详解
    目录使用的数据库tips 数据库Matplotlib散点图折线图条形图直方图总结在深入研究这些库之前,首先,我们需要一个数据库来绘制数据。我们将在本完整教程中使用 tips data...
    99+
    2022-11-12
  • 最强Python可视化绘图库Plotly详解用法
    今天给大家分享一篇可视化干货,介绍的是功能强大的开源 Python 绘图库 Plotly,教你如何用超简单的(甚至只要一行)代码,绘制出更棒的图表。 我之前一直使用 matplotl...
    99+
    2022-11-12
  • python——matplotlib绘图详解大全
    目录 一、图形绘制大全 1.1 2D图形绘制 1.1.1 绘制单线图形 1.1.2 绘制多线图 1.1.3 读取文件中的数据绘制图形 1.1.4 绘制散点图 1.1.5 绘制条形图 1.1.5.1 单条条形图 1、垂直条形图 2、水平条形...
    99+
    2023-09-09
    python matplotlib 开发语言
  • Python数据可视化之使用matplotlib绘制简单图表
    目录一、绘制折线图二、绘制柱形图或堆积图形三、绘制条形图或堆积条形图 四、绘制堆积面积图五、绘制直方图六、绘制饼图或者圆环图 七、绘制散点图或气泡图八、绘制箱形图...
    99+
    2022-11-13
  • Python数据可视化实践之使用Matplotlib绘制图表
    目录一. Matplotlib 简介二. 安装与导入三. 基本绘图操作1. 折线图2. 柱状图3. 饼图四. 图表定制五. 多图展示六. 总结一. Matplotlib 简介 Mat...
    99+
    2023-05-18
    Python Matplotlib绘制图表 Python Matplotlib
  • Python可视化绘制图表的教程详解
    目录1.Matplotlib 程序包2.绘图命令的基本架构及其属性设置3.Seaborn 模块介绍3.1 未加Seaborn 模块的效果4.描述性统计图形概览4.1制作数据4.2 频...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作