Python----数据分析(Matplotlib二:绘图一:折线图,条形图,直方图)

一、折线图

        折线图是一种常用的数据可视化工具,它主要用于展示随时间或有序类别变化的数据趋势。

plt.plot(x, y, fmt, **kwargs)
名称描述
x这个参数是数据点的 x 轴坐标,可以是一个列表或者数组。如果 x 没有被指 定,那么它默认为 range(len(y))。
y这个参数是数据点的 y 轴坐标,同样可以是一个列表或者数组。
fmt这是一个可选的字符串参数,用于定义图形的颜色和样式。它由以下部分 组成:
颜色例如 ‘r’ 代表红色,‘g’ 代表绿色等。
标记例如 ‘o’ 代表圆圈,‘s’ 代表正方形等。
线型例如 ‘-’ 代表实线,‘--’ 代表虚线,‘:’代表点等。
**kwargs这是可选的关键字参数,用于进一步自定义图形的属性。常用的关键 字参数包括:
label图例的标签。
linewidth 或 lw线宽。
color 或 c线的颜色。
marker标记样式,如 ‘o’,‘s’ 等。
markersize 或 ms标记的大小。
markeredgecolor标记边缘的颜色。
markeredgewidth标记边缘的宽度。
markerfacecolor标记内部的颜色。
alpha透明度
字符类型字符类型
-  实线型V下三角型
--虚线型^上三角型
-.虚点线型<左三角型
点型>右三角型
.句号型1下三叉型
_横线2上三叉型
o圆点型3左三叉型
s正方形4右三叉型
p五角型*星型
h六边形1H六边形2
+加号型x乘号型
D菱形d瘦菱形

1.1、正弦图

import numpy as np
import matplotlib.pyplot as plt
# 计算曲线上的点的x和y坐标
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)
# 使用Matplotlib绘制点,并添加fmt和kwargs属性
plt.plot(x, y, '-',label='Sine Wave',  # 图例标签linewidth=2,  # 线宽color='blue',  # 线的颜色marker='o',  # 标记样式markersize=5,  # 标记的大小markeredgecolor='black',  # 标记边缘的颜色markeredgewidth=1,  # 标记边缘的宽度markerfacecolor='none',  # 标记内部的颜色alpha=0.5 # 透明度)
# 显示图例
plt.legend()
# 显示图形
plt.show()

1.2、余弦

import numpy as np
import matplotlib.pyplot as plt
# 计算曲线上的点的x和y坐标
x = np.arange(0, 3 * np.pi, 0.1)
y = np.cos(x)
# 使用Matplotlib绘制点,并添加fmt和kwargs属性
plt.plot(x, y, '-',label='Sine Wave',  # 图例标签linewidth=2,  # 线宽color='blue',  # 线的颜色marker='o',  # 标记样式markersize=5,  # 标记的大小markeredgecolor='black',  # 标记边缘的颜色markeredgewidth=1,  # 标记边缘的宽度markerfacecolor='none',  # 标记内部的颜色alpha=0.5 # 透明度)
# 显示图例
plt.legend()
# 显示图形
plt.show()

1.3、气温变化图

from matplotlib import pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 1.准备数据
data=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
x = [1,2,3,4,5,6,7]
max_data = [10, 11, 13, 11, 12, 12, 9]
min_data = [1, -2, 2, 5, 3, 2, 0]# 绘制图表
plt.plot(x,max_data,label='最高温度',marker='o',mfc='w',linestyle='--',markeredgecolor='tab:orange')
plt.plot(x,min_data,label='最低温度',marker='*',mfc='w',linestyle=':',markeredgecolor='tab:green')
# 后续设置x轴刻度
plt.xticks(x,data)
# 显示图例
plt.legend()
# 设置网格
plt.grid(axis='y',linestyle='--',alpha=0.5)
# 设置y轴刻度
plt.yticks(range(-2,15,2))
# 设置标题
plt.title('一周温度变化图')

1.4、主要作用和适用场景:

  1. 显示趋势: 折线图非常适合展示数据随时间变化的趋势。通过将数据点连接起来,可以清晰地看到数据的增长、下降或波动趋势,帮助观察者理解数据的发展过程

  2. 突出波动和变化: 折线图可以有效地显示数据的波动和变化。观察者可以通过折线的上下波动来了解数据的不稳定性或周期性变化

  3. 比较多组数据: 如果你想比较多组数据在相同时间或 条件下的变化趋势,折线图是一个有用的工具。通过在同一图表上绘制多条折线,可以清晰地比较它们之间的差异

  4. 突出异常值: 折线图有助于识别数据中的异常值。当有一个数据点与其周围的趋势不一致时,很容易在折线图中看到这种异常

  5. 预测趋势: 基于历史数据的趋势,折线图可以用于预测未来的趋势。这对于业务决策和规划具有重要意义

  6. 显示周期性变化: 如果数据具有周期性的变化,例如季节性变化或周期性事件,折线图可以很好地展示这种周期性

二、条形图

        条形图是一种常见的数据可视化工具,它主要用于比较不同类别之间的数据。

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
名称描述
x条形中心的x坐标。这个参数可以是单个值或者一个列表,表示每个条形的中 心位置。
height条形的高度。这通常是一个数值或者一个列表,表示每个条形的高度。
width条形的宽度,默认为0.8。这可以是单个值,用于所有条形,或者一个列 表,用于指定每个条形的宽度。
bottom条形的起始位置,默认为0。这可以是单个值或者一个列表,用于堆叠 条形图。
align条形的对齐方式,可以是’center’(中心对齐,默认),‘edge’(左对 齐)。
data如果提供了 data参数,则x和height参数可以指定为字符串,这些字符串 将被解释为pandas DataFrame列的名称。
**kwargs其他关键字参数,包括:
color 或facecolor条形的填充颜色。
edgecolor 或linewidth条形边缘的颜色和线宽。
linestyle条形边缘的线型,例如 '-', '--' , '-.', ':'。
alpha条形的透明度,范围从0(完全透明)到1(完全不透明)。
hatch条形的填充图案
picker控制条形是否可以被交互式选择。
log如果设置为True,则条形的高度将以对数尺度表示。
label为条形创建图例时使用的标签

2.1、普通条图

import matplotlib.pyplot as pltfig, ax = plt.subplots()fruits = ['苹果', '蓝莓', '草莓', '橘子']
counts = [40, 100, 30, 55]bar_labels = ['青红色', '蓝色', '红色', '橙色']
bar_colors = ['tab:red', 'tab:blue', 'orangered', 'tab:orange']container = ax.bar(fruits, counts, label=bar_labels, color=bar_colors)
ax.bar_label(container)
ax.set_ylabel('水果数量')
ax.set_title('按种类和颜色划分的水果供应')
ax.legend(title='水果颜色')

2.2、横向条图

import matplotlib.pyplot as pltfig, ax = plt.subplots()fruits = ['苹果', '蓝莓', '草莓', '橘子']
counts = [40, 100, 30, 55]bar_labels = ['青红色', '蓝色', '红色', '橙色']
bar_colors = ['tab:red', 'tab:blue', 'orangered', 'tab:orange']container = ax.barh(fruits, counts, label=bar_labels, color=bar_colors)ax.bar_label(container)
ax.set_xlabel('水果数量')
ax.set_title('按种类和颜色划分的水果供应')
ax.legend(title='水果颜色')

 

2.3、多组条图

import matplotlib.pyplot as pltspecies = ("苹果","蓝莓","橘子")
weight_counts = {"第1季度": [70, 39, 58],"第2季度": [82, 37, 66],
}
width = 0.2
x = range(len(species))
x1 =[i+width for i in x]container = plt.bar(x, weight_counts["第1季度"],color='tab:red',label='第1季度',width=width)
plt.bar_label(container)
container2 = plt.bar(x1, weight_counts["第2季度"],color='tab:blue',label='第2季度',width=width)
plt.bar_label(container2)
plt.xticks([_+width/2 for _ in x], species)
plt.legend(loc=1)

2.4、堆叠条图

import matplotlib.pyplot as pltspecies = ("苹果","蓝莓","橘子")
weight_counts = {"第1季度": [70, 39, 58],"第2季度": [82, 37, 66],
}
x = range(len(species))
container = plt.bar(x, weight_counts["第1季度"],color='tab:red',label='第1季度')
plt.bar_label(container,label_type='center')
container2 = plt.bar(x, weight_counts["第2季度"],color='tab:blue',label='第2季度',bottom=weight_counts["第1季度"])
plt.bar_label(container2,label_type='center')
plt.xticks([_+width/2 for _ in x], species)
plt.legend(loc="upper right")

2.5、主要作用和适用场景

  1. 比较类别之间的大小: 条形图适用于展示不同类别的数据量或大小,通过条形的长度直观地比较它们之间的差异

  2. 展示排名和排序: 条形图可以用于显示数据的排名顺序,使观察者能够很容易地识别出最大值、最小值以及中间的排名

  3. 展示分布情况: 当你想了解不同类别在整体中所占的比例或分布情况时,条形图是一种有效的选择。每个条形的长度代表相应类别的数据量,总和即为整体的总量

  4. 呈现时间趋势: 虽然折线图更适合显示时间趋势,但条形图也可用于呈现时间点上的数据,例如某个特定时间内的销售额或收益

  5. 对比多组数据: 类似于折线图,条形图也能用于对比多组数据,但通常是在不同类别上进行比较,而非随时间变化

  6. 突出异常值: 条形图可以突出显示数据的异常值,观察者可以很容易地识别出高于或低于平均水平的类别

三、直方图

        直方图是一种用于展示数据分布情况的图表,主要用于描述数值型数据的频数分布。

hist(x: ArrayLike | Sequence[ArrayLike],bins: int | Sequence[float] | str | None = None,range: tuple[float, float] | None = None,density: bool = False,weights: ArrayLike | None = None,cumulative: bool | float = False,bottom: ArrayLike | float | None = None,histtype: Literal["bar", "barstacked", "step", "stepfilled"] = "bar",align: Literal["left", "mid", "right"] = "mid",orientation: Literal["vertical", "horizontal"] = "vertical",rwidth: float | None = None,log: bool = False,color: ColorType | Sequence[ColorType] | None = None,label: str | Sequence[str] | None = None,stacked: bool = False,*,data=None,**kwargs,
)
名称描述
x(n,) 个数组或 (n,) 个数组序列
bins

如果 bins 是整数,则它定义等宽 bin 的数量 在范围内。

如果 bins 是一个序列,则它定义 bin 边缘,包括 第一个 bin 的左边缘和最后一个 bin 的右边缘; 在这种情况下,分箱的间距可能不相等。除最后一个 (最右侧)垃圾桶是半开的。

range分箱的下限和上限范围。下限和上限异常值 被忽略。如果未提供,则 range 为 . 如果 bins 是一个序列,则 Range 不起作用。
density如果 ,draw 并返回一个概率密度:每个 bin 将显示素材箱的原始计数除以 counts 和 bin 宽度 ()、 ,使直方图下的面积积分为 1 ().
weights一个权重数组,其形状与 x 相同。x 中的每个值仅将其关联的权重贡献给 bin 计数 (而不是 1)。如果 density 为 ,则权重为 归一化,以便 Density 在 仍为 1。
cumulative

如果 ,则计算一个直方图,其中每个 bin 给出 该 bin 中的计数加上较小值的所有 bin。最后一个 bin 给出数据点的总数。True

如果 density 也是,则直方图被归一化,例如 最后一个 bin 等于 1。

如果 cumulative 是小于 0 的数字(例如 -1),则方向 的积累被逆转。在这种情况下,

如果 density 也是 ,则对直方图进行归一化,以便第一个 bin 等于 1。

bottom每个 bin 底部的位置,即从 到 如果是标量,则从底部绘制 的移动量相同。如果是一个数组,则每个 bin 独立移动,并且底部长度必须与 数据桶数。如果为 None,则默认为 0
histtype
  • 'bar' 是传统的条形直方图。如果多个数据 给定条形并排排列。

  • 'barstacked' 是一个条形直方图,其中多个 数据彼此堆叠在一起。

  • 'step' 生成一个默认未填充的 lineplot。

  • 'stepfilled' 生成一个默认填充的 lineplot。

align
  • 'left':条形在左侧 bin 边缘居中。

  • 'mid':条形在 bin 边缘之间居中。

  • 'right':条形以右侧 bin 边缘为中心。

orientation如果为 'horizontal',则将用于条形直方图 底部 kwarg 将是左边缘。
rwidth

条形的相对宽度,作为条柱宽度的分数。如果 ,则自动计算宽度。None

如果 histtype 为 'step' 或 'stepfilled',则忽略。

log如果 ,则直方图轴将设置为对数刻度。
color颜色或颜色序列,每个数据集一个。默认 () 使用标准线条颜色序列。
label字符串或字符串序列以匹配多个数据集。酒吧 图表为每个数据集生成多个补丁,但只有第一个 Patch 会得到 标签,这样就可以按预期工作。
stacked如果 ,则多个数据相互堆叠 如果多个数据并排排列,如果 histtype 为 如果 histtype 为 'step' ,则 'bar' 或彼此重叠
data如果给定,则以下参数还接受 string ,即 解释为 if 是 中的键 
**kwargs接受对应于 X 轴上的数据集

3.1、组距和组数

组距:每组数据的分割区域,例如1-5一组5-10一组。我们可以称数据的组距为5

组数:(最大数据-最小数据)/组距 一般会100条数据可分5-12组

3.2、 直方图

from matplotlib import pyplot as plt
from random import randintplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsedata = [randint(1, 100) for _ in range(100)]plt.hist(data,20,facecolor='tab:orange',edgecolor='white',alpha=0.5)

3.3、主要作用和适用场景

  1. 展示数据分布: 直方图可用于呈现数值型数据的分布情况,帮助观察者了解数据集中在哪个范围内、是否存在偏斜以及分布的形状

  2. 观察数据的集中趋势和离散程度: 通过直方图,你可以直观地看到数据的中心位置(集中趋势)和数据的分散程度(离散程度),从而更好地理解数据的整体特征

  3. 识别异常值: 直方图能够帮助你发现数据集中的异常值,即明显偏离主体的数值,这对于数据清理和异常值处理很有帮助

  4. 判断数据的对称性: 直方图的形状可以显示数据集的对称性或偏斜程度,有助于了解数据是正态分布还是偏斜分布

  5. 比较不同数据集之间的差异: 当你有多个数据集需要比较时,直方图可以清晰地展示它们的分布情况,帮助观察者理解它们之间的差异

  6. 确定数据的分组间隔: 在构建直方图时,选择适当的分组间隔对于准确地反映数据分布至关重要

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27990.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Adobe Acrobat 实现PPT中图片分辨率的提升

1. 下载适用于 Windows 的 64 位 Acrobat 注册方式参考&#xff1a;https://ca.whu.edu.cn/knowledge.html?type1 2. 将ppt中需要提高分辨率的图片复制粘贴到新建的pptx问价中&#xff0c;然后执行“文件—>导出---->创建PDF、XPS文档” 3. 我们会发现保存下来的distrib…

从零开始实现机器臂仿真(UR5)

1. UR5软件配置 # 安装 MoveIt! 依赖 sudo apt install ros-humble-moveit ros-humble-tf2-ros ros-humble-moveit-setup-assistant ros-humble-gazebo-ros-pkgs # 安装 UR 官方 ROS2 驱动 sudo apt update sudo apt install ros-humble-ur-robot-driver ros-humble-ur-descri…

Jupyter Notebook 入门教程

Jupyter Notebook 是一个功能强大的交互式计算环境&#xff0c;广泛应用于数据科学、机器学习和数据分析领域。它允许用户在浏览器中创建和共享包含代码、文本、数学公式、图表等的文档。本文将为您提供一份简明的 Jupyter Notebook 入门教程&#xff0c;帮助您快速上手。 1. 什…

【大模型原理与技术】1.2基于学习的语言模型

机器学习的要素&#xff1a; 训练数据 假设类 归纳偏置 学习算法 学习范式 机器学习的过程&#xff1a; 在某种学习范式下&#xff0c;基于训练数据&#xff0c;利用学习算法&#xff0c;从受归纳偏置限制的假设类中选取出可以达到学习目标的假设&#xff0c;该假设可以泛化到…

抽奖系统(从0-1)(上)

hu项目的开发流程介绍 1. 项目启动阶段 • 项⽬概述&#xff1a;介绍项⽬的背景、⽬标和预期成果。 • 团队组建&#xff1a;建跨职能团队&#xff0c;包括产品经理、UI/UX 设计师、开发⼈员、测试⼈员等。 • ⻆⾊定义&#xff1a;明确团队中各个⻆⾊的职责和⼯作内容。 2. 需…

Python第十三课:数据库交互 | 信息帝国的基石

&#x1f3af; 本节目标 理解SQL与NoSQL的核心差异掌握SQL基础语法与设计范式学会使用ORM简化数据库操作开发实战项目&#xff1a;电商订单系统掌握索引优化与事务管理 1️⃣ 数据库理论基石&#xff08;先懂原理再写代码&#xff09; &#x1f4a1; 数据库类型对比 &#…

GPU/CUDA 发展编年史:从 3D 渲染到 AI 大模型时代

目录 文章目录 目录1960s~1999&#xff1a;GPU 的诞生&#xff1a;光栅化&#xff08;Rasterization&#xff09;3D 渲染算法的硬件化实现之路学术界算法研究历程工业界产品研发历程光栅化技术原理光栅化技术的软件实现&#xff1a;OpenGL 3D 渲染管线设计1. 顶点处理&#xff…

流程设计5原则与流程执行5要点

流程设计5原则与流程执行5要点 汉捷咨询 胡红卫 企业创造价值、为客户服务是通过业务流来实现的&#xff0c;而业务流程是业务流的载体和表现形式。把业务流程设计好、执行好&#xff0c;就能够持续提升企业各项活动的质量和效率&#xff0c;确保端到端的优质交付&#xff0c…

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程 简介 multiprocessing 模块 Process 类 僵尸进程与孤儿进程 简介 在前面的进程理论的介绍当中我们已经介绍了进程的概念、并发与并行的区别以及进程并发的实现理论&#xff0c;这些都…

Linux : 环境变量

目录 一 环境变量 1.基本概念 二 常见环境变量 三 查看环境变量的方法 1.env:查看系统中所有环境变量 2. echo $NAME 四 如何不带路径也能运行的自己的程序 1.将自己的程序直接添加到PATH指定的路径下 五 环境变量与本地变量 1.本地变量 2. 环境变量 六C、C中main()…

【YashanDB认证】yashandb23.3.1 个人版单机部署安装实践

YCA报名链接如下: YashanDB|崖山数据库系统YashanDB学习中心-YCA认证详情 目前免费 主要参考文档&#xff1a; 单机&#xff08;主备&#xff09;部署 | YashanDB Doc 另外还参考摩天轮文章&#xff1a; YashanDB 23.2.9.101 企业版安装步骤抢先看&#xff01; - 墨天轮 …

Stiring-PDF:开源免费的PDF文件处理软件

Stiring-PDF是一款开源免费且比较好用的PDF文件处理工具。 Stiring-PDF官网网址为&#xff1a;https://www.stiringpdf.com/。Stiring-PDF是一款专业的PDF文件处理工具&#xff0c;支持Windows和macOS操作系统&#xff1b;提供丰富的PDF编辑和转换功能&#xff0c;适用于日常工…

docker-compose安装anythingLLM

1、anythingLLM的docker-compose文件 version: 3.8 services:anythingllm:image: mintplexlabs/anythingllm:latestcontainer_name: anythingllmports:- "23001:3001"cap_add:- SYS_ADMINenvironment:# Adjust for your environment- STORAGE_DIR/app/server/storage…

maven推送jar包到nexus

1.背景2.推送jar包到nexus3.从nexus拉取jar包4.release和snapshot区别 1.背景 本地虚拟机centos7.9(110.110.110.100)安装好了nexus 下面演示把本地的maven项目打包推送到nexus。 2.推送jar包到nexus 我项目的命名如下: 下面演示把这个项目jar包推送到nexus仓库 <groupI…

微信小程序上如何使用图形验证码

1、php服务器生成图片验证码的代码片段如下&#xff1a; 注意红框部分的代码&#xff0c;生成的是ArrayBuffer类型的二进制图片 2、显示验证码 显示验证码&#xff0c;不要直接image组件加上src显示&#xff0c;那样拿不到cookie&#xff0c;没有办法做图形验证码的验证&…

comfyui使用ComfyUI-AnimateDiff-Evolved, ComfyUI-Advanced-ControlNet节点报错解决

comfyui使用animate-diff生成动画&#xff0c;各种报错解决 报错1&#xff1a; ‘cond_obj’ object has no attribute ‘hooks’ 报错2&#xff1a; AdvancedControlBase.get_control_inject() takes 5 positional arguments but 6 were given 报错3&#xff1a; ‘ControlN…

centos搭建 Node.js 开发环境

Node.js &#xff0c;通常简称为Node&#xff0c;是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基于 Chrome V8引擎&#xff0c;具备速度快、性能强等特点&#xff0c;可用于搭建各类网络应用&#xff0c;及作为小程序后端服务环境。npm 和 npx 都是和 Node.js 相关的…

涨薪技术|JMeter异步接口测试实战

前言 异步接口是指在请求发送后&#xff0c;客户端并不会立即收到响应结果。与同步接口不同&#xff0c;异步接口需要等待一段时间后才能得到相应的结果。 通常情况下&#xff0c;异步接口可以通过消息队列或事件监听器来实现。当用户请求进入系统时&#xff0c;可以将任务提…

SAP MDG —— MDG on S/4HANA 2023 FPS03 创新汇总

文章目录 MDG 基于SAP S/4HANA 2023 FPS03的创新BP/C/S&#xff1a;消息控制BP/C/S&#xff1a;手工分配数据控制者MDG-F&#xff1a;使用S/4扩展数据校验功能生成式AI可用于协助自定义对象的数据变更/同时可总结批量变更的内容 MDG 基于SAP S/4HANA 2023 FPS03的创新 由于从S…

数据库基础(MySQL)

1. 数据库基础 1.1 什么是数据库 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库 文件保存数据有以下几个缺点&#xff1a; 文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质&#xff1a; 磁盘内存 为了…