python数据分析——matplotlib可视化基础

参考资料:活用pandas库

# 导入库
import pandas as pd
import matplotlib.pyplot as plt
# 导入数据
anscombe=pd.read_csv(r"...\seaborn常用数据案例\anscombe.csv")
anscombe.head()

        大多数基本图表的名字以plt.plot开头。

# 创建数据子集
# 只包含数据集Ⅰ
dataset_1=anscombe[anscombe['dataset']=='I']
plt.plot(dataset_1.x,dataset_1.y)

        默认情况下,plt.plot用于画线。如果想用它画圆点,可以给plt.plot传递一个“o”参数。

# 绘制点图
plt.plot(dataset_1.x,dataset_1.y,"o")

        当然,也可以对anscombe数据集的其余数据重复该过程。matplotlib可以指定最终图的维数,根据指定的维数放入更小的子图表。通过这种方式,可以在单幅图中显示结果,而不必分成多幅图。

        subplot方法有3个参数:子图的行数、子图的列数、子图的位置。子图的位置是按顺序编号的,先从左到右,在从上到下。示例如下

# 创建画布,用于放置子图
fig=plt.figure()
# 指定子图的排布方式
# 本例,子图共有2行,每行2幅子图
# 子图有2行2列,位置是1
axes1=fig.add_subplot(2,2,1)
# 子图有2行2列,位置是2
axes2=fig.add_subplot(2,2,2)
# 子图有2行2列,位置是3
axes3=fig.add_subplot(2,2,3)
# 子图有2行2列,位置是4
axes4=fig.add_subplot(2,2,4)

        用上述方法绘制anscombe数据集的4个子图:

# 创建anscombe数据的其余数据集
dataset_2=anscombe[anscombe["dataset"]=="II"]
dataset_3=anscombe[anscombe["dataset"]=="III"]
dataset_4=anscombe[anscombe["dataset"]=="IV"]
# 在上面建立的4个空的轴域中绘制点图
axes1.plot(dataset_1.x,dataset_1.y,"o")
axes2.plot(dataset_2.x,dataset_2.y,"o")
axes3.plot(dataset_3.x,dataset_3.y,"o")
axes4.plot(dataset_4.x,dataset_4.y,"o")

        最后,向各个子图添加标签,并使用tight_layout方法确保各个坐标轴彼此分开。

# 向各幅子图添加子标题
axes1.set_title("dataset_1")
axes2.set_title("dataset_2")
axes3.set_title("dataset_3")
axes4.set_title("dataset_4")
# 为整幅图田间一个大标题
fig.suptitle('Anscombe Data')
# 使用紧凑布局
fig.tight_layout()

        anscombe数据可视化阐明了为什么只看汇总统计值会产生误导。当把这些点可视化后,即使每个数据集有相同的汇总统计值,不同数据集的点之间的关系也相差较大。

        为了让anscombe数据图更完整,可以使用set_xlabel()和set_ylabel()向每个子图添加x轴标签和y轴标签。

        在python有关绘图的内容中,注意区分“axis”(坐标轴)和“axes”(轴域)的区别。

 1、使用matplotlib绘制统计图

# 导入库
import pandas as pd
import matplotlib.pyplot as plt
tips=pd.read_csv(r"...\seaborn常用数据案例\tips.csv")
print(tips.head())

(1)直方图是通过观察单个变量最常用的方法。这些值是经过“装箱”(bin)处理的,这意味着将它们分组后绘制成图来显示变量的分布情况。

fig=plt.figure()
axes1=fig.add_subplot(1,1,1)
axes1.hist(tips["total_bill"],bins=10)
axes1.set_title("Histogram of Total Bill")
axes1.set_xlabel("Frequency")
axes1.set_ylabel("Total Bill")
fig.show()

(2)散点图用于表示一个连续变量随另一个连续变量的变化所呈现的大致趋势。

scatter_plot=plt.figure()
axes1=scatter_plot.add_subplot(1,1,1)
axes1.scatter(tips['total_bill'],tips['tip'])
axes1.set_title("Scatterplot of Total Bill vs Tip")
axes1.set_xlabel("Total Bill")
axes1.set_ylabel("Tip")
scatter_plot.show()

(3)箱线图用于展示一个离散变量随连续变量的变化而呈现的分布状况。

box_plot=plt.figure()
axes1=box_plot.add_subplot(1,1,1)
axes1.boxplot(
    # 箱线图的第一个参数是数据
    # 由于要绘制多块数据,因此必须把每块数据放入列表中
    [
        tips[tips['sex']=='Female']['tip'],
        tips[tips['sex']=='Male']['tip']
    ],
    # 然后可以传入一个可选的标签参数,用来标记传递的数据
    labels=['Female','Male']
)
axes1.set_title("Boxplot of Tips by Sex")
axes1.set_xlabel('Sex')
axes1.set_ylabel('Tip')
boxplot.show()

(4)如果想要表示更多变量则可以通过颜色或大小来区分。

# 基于性别创建一个带颜色的变量
def recode_sex(sex):
    if sex=="Female":
        return 0
    else:
        return 1
    
tips['sex_color']=tips['sex'].apply(recode_sex)
scatter_plot=plt.figure()
axes1=scatter_plot.add_subplot(1,1,1)
axes1.scatter(
    x=tips['total_bill'],
    y=tips['tip'],
    # 根据聚餐人数设置点的大小,乘以10以放大不同
    s=tips['size']*10,
    # 为sex设置颜色
    c=tips['sex_color'],
    # 设置alpha值,增加透明度,以表现重叠的点
    alpha=0.5
)
axes1.set_title("Total Bill vs Tip Colored by Sex and Sized by Size")
axes1.set_xlabel("Total Bill")
axes1.set_ylabel("Tip")
scatter_plot.show()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电力场景设备漏油检测数据集VOC+YOLO格式338张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):338 标注数量(xml文件个数):338 标注数量(txt文件个数):338 标注类别…

linux学习:视频输入+V4L2

目录 V4L2 视频采集流程 代码例子 核心命令字和结构体 VIDIOC_ENUM_FMT VIDIOC_G_FMT / VIDIOC_S_FMT / VIDIOC_TRY_FM VIDIOC_REQBUFS VIDIOC_QUERYBUF VIDIOC_QBUF /VIDIOC_DQBUF VIDIOC_STREAMON / VIDIOC_STREAMOFF V4L2 是 Linux 处理视频的最新标准代码模块&…

Hadoop3.4.0 完全分布式集群 运行环境搭建 VMware Workstation 虚拟机 大数据系列 一

一 生产环境集群模式部署,需要多台主机,主机之间通过密钥相互访问. 1 配置如图 节点名字节点IP系统版本master11192.168.50.11centos 8.5slave12192.168.50.12centos 8.5slave13192.168.50.13centos 8.5 2 安装服务器 #先安装一台master11&#xff…

读人工智能时代与人类未来笔记01_重塑人类社会秩序

1. AlphaZero 1.1. 2017年年底,由谷歌旗下DeepMind公司开发的人工智能程序AlphaZero击败了当时世界上最强大的国际象棋程序Stockfish 1.1.1. AlphaZero对Stockfish的百场战绩是28胜72平0负,可以说获得了压倒性的胜利 1.1.2. …

手撕C语言题典——反转链表

目录 前言 一.思路 1)创建新链表 2)创建三个指针 二.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识,我们来尝试做一下关于顺序表的经典算法题~ 前言 反转…

RocketMQ(一)

作用 1. 限流削峰 2. 异步解耦 组成 Producer:消息的发送者,生产者;举例:发件人 Consumer:消息接收者,消费者;举例:收件人 Broker:暂存和传输消息的通道&#xff1…

C语言 | Leetcode C语言题解之第85题最大矩形

题目&#xff1a; 题解&#xff1a; int maximalRectangle(char** matrix, int matrixSize, int* matrixColSize) {int m matrixSize;if (m 0) {return 0;}int n matrixColSize[0];int left[m][n];memset(left, 0, sizeof(left));for (int i 0; i < m; i) {for (int j …

---随笔--Java实现TCP通信(双端通信接收与发送)

---随笔--Java实现TCP通信&#xff08;双端通信接收与发送&#xff09; 引言1. 什么是TCP通信2. 服务器与客户端核心代码2.1 服务器ServerSocket端核心代码2.2 用户Socket端核心代码2.3 小贴士之关于try-with-resources自动关闭资源的使用 3. 具体服务器端实现4. 具体客户端实现…

LLM量化

Efficient Finetuning prefix tuning 针对每种任务&#xff0c;学习prefix vector 启发于prompting&#xff0c;调整上下文内容让模型去输出自己想要的内容 核心就是找到一个上下文去引导模型解决NLP生成任务 传统情况下&#xff0c;我们为了得到想要的结果&#xff0c;会…

jdk8的新特征

1&#xff1a; jdk8中新增的方法 在jdk8中对接口进行了增强&#xff0c;在jdk8之前 interface 接口名{ 静态常量&#xff1a; 抽象方法&#xff1a; } 在jdk8之后 interface 接口名{ 静态常量&#xff1a; 抽象方法&#xff1a; 默认方法&#xff1a; 静态方法&#xff1a; } 2…

Ubuntu20.4部署Cuda12.4

准备Ubuntu20.4 VM 安装Cuda12.4 1.进入如下界面安装安装Cuda12.4版本&#xff1a; CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA Developerhttps://developer.nvidia.com/cuda-downloads?target_osLinux&target_archx86_64&DistributionUbuntu&target_vers…

97. 交错字符串-----回溯、动态规划

题目链接 97. 交错字符串 - 力扣&#xff08;LeetCode&#xff09; 解答 递归回溯 题目所述为两个字符串交替组成第三个字符串&#xff0c;之前好像做过相似的题目&#xff0c;直接联想到可以考虑使用递归回溯的做法&#xff0c;让字符串s1和字符串s2分别作为起始字符串&…

vm16安装最新版本的ubuntu虚拟机,并安装g++的步骤记录

背景 低版本的ubuntu安装G一直不成功&#xff0c;干脆安装最新版的 官网下载 bing搜索ubuntu 下载完成 vm16新建虚拟机 一直下一步&#xff0c;安装完成 终端输入命令 sudo apt-get update ᅟᅠ       sudo apt install gcc ᅟᅠ      sudo apt install g

工程师工具箱系列(1)MapStruct

文章目录 工程师工具箱系列&#xff08;1&#xff09;MapStruct芸芸众生初窥门径引入POM依赖创建转换器与方法进行使用IDEA好基友 游刃有余示例说明避免编写重复转换器实现复杂灵活转换 温故知新 工程师工具箱系列&#xff08;1&#xff09;MapStruct 芸芸众生 在Java项目开发…

SpringAI 技术解析

1. 发展历史 SpringAI 的发展历史可以追溯到对 Spring 框架的扩展和改进&#xff0c;以支持人工智能相关的功能。随着人工智能技术的快速发展&#xff0c;SpringAI 逐渐成为 Spring 生态系统中的一个重要组成部分&#xff0c;为开发者提供了便捷、灵活的解决方案。 项目的灵感来…

算法提高之单词接龙

算法提高之单词接龙 核心思想&#xff1a;dfs 预处理每两个字符串之间最短的公共部分长度 求最短公共 最终字符串是最长 dfs所有开头字符串 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 25;int g[N][N…

雷军-2022.8小米创业思考-6-互联网七字诀之快:天下武功,唯快不破;快不是目的,快是手段;不要用战术上的勤奋掩盖战略上的懒惰。

第六章 互联网七字诀 专注、极致、口碑、快&#xff0c;这就是我总结的互联网七字诀&#xff0c;也是我对互联网思维的高度概括。 快 我们期待非常多的快&#xff0c;比如研发进展快、库存周转快、资金回笼快等等。但在这里&#xff0c;我们集中讨论的是公司在业务发展和面对…

LeetCode题练习与总结:二叉树的中序遍历--94

一、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&#xff1a;roo…

C语言(指针)5

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…

Busybox 在 Docker 中的部署和启动

可以使用 docker pull 指令下载 busybox:latest 镜像&#xff1a; PS C:\Users\yhu> docker pull busybox:latest latest: Pulling from library/busybox ec562eabd705: Pull complete Digest: sha256:5eef5ed34e1e1ff0a4ae850395cbf665c4de6b4b83a32a0bc7bcb998e24e7bbb St…