首页 > 其他分享 >数据分析-Matplotlib模块

数据分析-Matplotlib模块

时间:2024-04-02 17:11:06浏览次数:20  
标签:数据分析 None plt False pyplot Matplotlib 默认 matplotlib 模块

简介

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。

Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。

Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。

pyplot子模块的绘图流程

在学习使用pyplot子模块绘图时,需要先了解使用该模块实现绘图的业务流程,根据绘图流程调用pyplot子模块中对应的方法即可实现绘制大多数常用的图表。

安装

pip install matplotlib

使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt

使用

matplotlib.pyplot.figure():创建新画布(也可以直接使用默认的)

matplotlib.pyplot.title():图表标题

matplotlib.rcParams['font.family'] = 'SimHei':设置中文字体

matplotlib.pyplot.xlable():x轴标签

matplotlib.pyplot.ylable():y轴标签

matplotlib.pyplot.show():展示图表

常见图表方法

matplotlib.pyplot.plot([x], y, [fmt], *, data=None, **kwargs)(或plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)画多条直接):用于绘制线图和散点图

  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。

  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。

  • kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。

    • 颜色字符:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。

    • 线型参数:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。

    • 标记字符:'.' 点标记,',' 像素标记(极小点),'o' 实心圈标记,'v' 倒三角标记,'^' 上三角标记,'>' 右三角标记,'<' 左三角标记...等等。

我们也可以绘制任意数量的点,只需确保两个轴上的点数相同即可。

如果我们 x 轴上的点,则 y 轴会根据 x 轴的值来设置为 0, 1, 2, 3..N-1

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,颜色条就像一个颜色列表,其中每种颜色都有一个范围从 0 到 100 的值,默认值为 'viridis'。(不用记有啥颜色条,写一个错的,报错全都出来了)

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

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

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

  • linewidths::标记点的长度。

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

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

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'。

matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, **kwargs)

  • x:表示要绘制直方图的数据,可以是一个一维数组或列表。

  • bins:可选参数,表示直方图的箱数。默认为10。

  • range:可选参数,表示直方图的值域范围,可以是一个二元组或列表。默认为None,即使用数据中的最小值和最大值。

  • density:可选参数,表示是否将直方图归一化。默认为False,即直方图的高度为每个箱子内的样本数,而不是频率或概率密度。

  • weights:可选参数,表示每个数据点的权重。默认为None。

  • cumulative:可选参数,表示是否绘制累积分布图。默认为False。

  • bottom:可选参数,表示直方图的起始高度。默认为None。

  • histtype:可选参数,表示直方图的类型,可以是'bar'、'barstacked'、'step'、'stepfilled'等。默认为'bar'。

  • align:可选参数,表示直方图箱子的对齐方式,可以是'left'、'mid'、'right'。默认为'mid'。

  • orientation:可选参数,表示直方图的方向,可以是'vertical'、'horizontal'。默认为'vertical'。

  • rwidth:可选参数,表示每个箱子的宽度。默认为None。

  • log:可选参数,表示是否在y轴上使用对数刻度。默认为False。

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)

  • x:浮点型数组或列表,用于绘制饼图的数据,表示每个扇形的面积

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

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

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

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

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

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

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

  • wedgeprops :字典类型,默认值 None。用于指定扇形的属性,比如边框线颜色、边框线宽度等。例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。

  • textprops :字典类型,用于指定文本标签的属性,比如字体大小、字体颜色等,默认值为 None。

  • frame :布尔类型,用于指定是否绘制饼图的边框,默认值:False。如果是 True,绘制带有表的轴框架。

matplotlib.pyplot.subplot(nrows, ncols, index, **kwargs) 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个

设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:(1, 1), (1, 2)

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

'''设置中文字体'''
matplotlib.rcParams['font.family'] = 'SimHei'

plt.figure()
'''图表一:条形图'''
plt.subplot(2,2,1)   ###画布切割成2行2列,第一块画条形图
x = [9,12,13,17]
y = [1,9,13,11]
plt.plot(x,y,'r')
plt.title('条形图')
'''图表二:散点图'''
plt.subplot(2,2,2)
x = np.random.rand(50)
y = np.random.rand(50)
size = np.random.rand(50)*250
color = range(50)
plt.scatter(x,y,cmap='Set3',c=color,alpha=0.5)
plt.title('散点图')
'''图表三:柱形图'''
plt.subplot(2,2,3)
x = ['a','b','c','d']
y =[3,9,11,7]
plt.bar(x,y)
plt.title('柱形图')
'''图表四:扇形图'''
plt.subplot(2,2,4)
size =[15,25,10,35]
lables = ['A','B','C','D']
color =['yellowgreen','gold','lightskyblue','lightcoral']
explod = (0,0.1,0,0)
plt.pie(size,colors=color,explode=explod,labels=lables,autopct='%1.1f%%',shadow=True,startangle=90)
plt.title('扇形图')

plt.show()

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw):设置多个可以共享轴的图表

返回两个对象,画布对象和子图对象

  • sharex、sharey:设置 x、y 轴是否共享属性,默认为 false,可设置为 'none'、'all'、'row' 或 'col'。 False 或 none 每个子图的 x 轴或 y 轴都是独立的,True 或 'all':所有子图共享 x 轴或 y 轴,'row' 设置每个子图行共享一个 x 轴或 y 轴,'col':设置每个子图列共享一个 x 轴或 y 轴。

    • 每一列共享X轴

    • 每一行共享Y轴

    • 所有图表共享X,Y

  • squeeze:布尔值,默认为 True,表示额外的维度从返回的 Axes(轴)对象中挤出,对于 N1 或 1N 个子图,返回一个 1 维数组,对于 N*M,N>1 和 M>1 返回一个 2 维数组。如果设置为 False,则不进行挤压操作,返回一个元素为 Axes 实例的2维数组,即使它最终是1x1。

  • subplot_kw:可选,字典类型。把字典的关键字传递给 add_subplot() 来创建每个子图

  • gridspec_kw:可选,字典类型。把字典的关键字传递给 GridSpec 构造函数创建子图放在网格里(grid)。

  • **fig_kw:把详细的关键字参数传给 figure() 函数。

    • 新建画布创建一个绘图

    • 创建两个子图,共享y轴

matplotlib.pyplot.grid(b=None, which='major', axis='both', )

  • **b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 kwargs 参数,则值为 true。

  • which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线

  • axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。

  • **kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。

其他图表方法

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=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)

  • X:输入数据。可以是二维数组、三维数组、PIL图像对象、matplotlib路径对象等。

  • cmap:颜色映射。用于控制图像中不同数值所对应的颜色。可以选择内置的颜色映射,如gray、hot、jet等,也可以自定义颜色映射。

matplotlib.pyplot.imsave(fname, arr, **kwargs)

  • fname:保存图像的文件名,可以是相对路径或绝对路径。
  • arr:表示图像的NumPy数组。
  • kwargs:可选参数,用于指定保存的图像格式以及图像质量等参数。

标签:数据分析,None,plt,False,pyplot,Matplotlib,默认,matplotlib,模块
From: https://www.cnblogs.com/yigehulu/p/18102177

相关文章

  • agate 一个方便的python 数据分析包
    对于基于python数据处理的同学,使用pandas的可能比较多,但是agate也是一个很不错的选择,比如dbt对于seed模型的处理就基于了agateagate包含的特性易读以及用户用好的api完整的类似sql的操作unicode支持比较完整的文档插件化的扩展支持(比如sql,excel)与ipython,jupyter以......
  • Quill文档(三):构建自定义模块
    Quill作为编辑器的核心优势在于其丰富的API和强大的定制能力。当您在Quill的API之上实现功能时,将其组织为一个模块可能会很方便。为了本指南的目的,我们将逐步介绍一种构建单词计数器模块的方法,这是许多文字处理器中常见的功能。注意在内部,模块是Quill的许多功能的组织方......
  • 【Easy云盘 | 第三篇】登录注册模块上篇(获取验证码、发送邮箱验证码、登录、注册、重
    前言该Easy云盘非原创,原作者为B站程序员老罗本人不分享本项目源码,只记录项目日记,学习项目技术思路,支持项目付费B站项目学习链接:Springboot项目实战easypan仿百度网盘计算机毕业设计简历项目项目经验(后端)该项目难点:上传文件(大文件的分片与合并、视频文件的分片)、删......
  • R语言分段回归数据分析案例报告
    原文链接: http://tecdat.cn/?p=3805原文出处:拓端数据部落公众号 我们在这里讨论所谓的“分段线性回归模型”,因为它们利用包含虚拟变量的交互项。读取数据  data=read.csv("artificial-cover.csv")查看部分数据  head(data)##   tree.covershurb.gr......
  • IDEA中新建SpringBoot模块,JDK版本问题解决
    问题描述IDEA中新建SpringBoot模块,使用的JAVAJDK1.8,新建模块时选项中没有JDK8: 运行时报错,JDK之类的问题解决方案,查看修改以下四个地方:(1)设置-Java编译器 (2)项目结构--依赖以及源码 ......
  • Python表格处理模块xlrd在Anaconda中的安装
      本文介绍在Anaconda环境下,安装Python读取.xls格式表格文件的库xlrd的方法。  xlrd是一个用于读取Excel文件的Python库,下面是xlrd库的一些主要特点和功能:读取Excel文件:xlrd可以打开和读取Excel文件,并提取其中的数据和元数据。支持多种数据类型:xlrd可以处理包括数字、日......
  • 2. 脚本、模块、包
    在python眼中,程序是如何被划分的1.脚本(script)被运行的python代码,称之为脚本,runxxx.py,xxx.py就会被视为脚本2.模块(module),为何需要提出模块的概念对应的就是xxx.py模块化你的程序上图这样管理更加清晰有条理module的概念是相对的:对于A里面importB,那么B就是A的module......
  • JS 中的模块化 Module
    零、参考资料深入分析JavaScript模块循环引用Module的加载实现从模块的循环加载看ESM与CJS理解amd,cmd,commonjs,esm,umd模块化一、早期的实践-CommonJS族Node.js提供了服务器端的js运行环境,因此也带来了一波服务端js库的开发高潮。随着功能的完善,相关代......
  • 数据分析(三)线性回归模型实现
    1.惩罚线性回归模型概述线性回归在实际应用时需要对普通最小二乘法进行一些修改。普通最小二乘法只在训练数据上最小化错误,难以顾及所有数据。惩罚线性回归方法是一族用于克服最小二乘法(OLS)过拟合问题的方法。岭回归是惩罚线性回归的一个特例。岭回归通过对回归系数的平方......
  • BOSHIDA 常见的DC电源模块故障及解决方法
    BOSHIDA常见的DC电源模块故障及解决方法DC电源模块广泛应用于各种电子设备中,为其提供稳定的直流电源。然而,由于长期使用或其他原因,DC电源模块有时会出现故障。本文将介绍一些常见的DC电源模块故障及相应的解决方法。 1.输出电压异常:DC电源模块的主要功能是提供稳定的输出电......