通过Python绘制不同数据类型适合的可视化图表

在数据可视化中,对于描述数值变量与数值变量之间的关系常见的有散点图和热力图,以及描述数值变量与分类变量之间的关系常见的有条形图,饼图和折线图,可以通过使用Python的matplotlibseaborn库来绘制图表进行可视化表达,接下来分别对这些类型进行举例演示。

一:数值变量与数值变量

1:散点图 (Scatter Plot) - 展示两个数值变量之间的关系

使用Python的Matplotlib库来绘制这个散点图。首先,我会生成一些模拟数据来代表身高和体重,然后使用Matplotlib绘制散点图。

import matplotlib.pyplot as plt
import numpy as np# 生成模拟数据
np.random.seed(0)
height = np.random.normal(170, 10, 100)  # 身高数据,平均身高170cm,标准差10cm
weight = np.random.normal(70, 15, 100)   # 体重数据,平均体重70kg,标准差15kg# 绘制散点图
plt.figure(figsize=(10, 6))
plt.scatter(height, weight, color='blue', alpha=0.5)
plt.title('身高与体重的关系')
plt.xlabel('身高 (cm)')
plt.ylabel('体重 (kg)')
plt.grid(True)
plt.show()

结果如下:

这是一个简单的散点图示例,展示了身高和体重之间的关系。在这个图中,每个点代表一个数据点,其横坐标表示身高,纵坐标表示体重。通过这个图表,我们可以初步观察身高和体重之间的分布模式。

2:热力图 (Heatmap) - 展示两个数值变量的联合分布

要绘制一个热力图,我们需要以下信息:

  1. 数据集:热力图通常用于展示二维数据集,其中每个数据点都有一个值,这个值将被映射到颜色上。
  2. 颜色映射:确定如何将数据值映射到不同的颜色。
  3. 标题和标签:为图表设定一个清晰的标题,以及X轴和Y轴的标签,以便于理解。

基于以上几点,我将创建一个简单的热力图示例。假设我们有一个简单的二维数据集,我们想要通过热力图来展示这个数据集的值分布。

import matplotlib.pyplot as plt
import numpy as np# 生成模拟数据
np.random.seed(0)
data = np.random.rand(10, 10)  # 10x10的二维数据集# 绘制热力图
plt.figure(figsize=(8, 6))
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar(label='值')
plt.title('热力图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

结果如下:

这是一个简单的热力图示例,展示了10x10二维数据集的值分布。在这个图中,每个方格代表数据集中的一个数据点,其颜色深浅表示该数据点的值大小。颜色越深,值越大;颜色越浅,值越小。

二:类别变量与数值变量

1:堆叠条形图 (Stacked Bar Chart) - 展示多个类别变量的数值分布

堆叠条形图是一种特殊的条形图,其中每个条形代表多个数据系列的总和,每个系列以不同的颜色堆叠在一起。要绘制一个堆叠条形图,我们需要以下信息:

  1. 数据集:包含多个数据系列的二维数据集,其中每个系列都有一个或多个数据点。
  2. 类别标签:用于X轴的标签,表示每个条形代表的类别。
  3. 系列标签:用于图例,表示每个数据系列的名称。

基于以上几点,我将创建一个简单的堆叠条形图示例。假设我们有一个关于不同产品的销售数据,包括三个季度的销售额。

import matplotlib.pyplot as plt
import numpy as np# 生成模拟数据
np.random.seed(0)
products = ['产品A', '产品B', '产品C', '产品D']
q1_sales = np.random.randint(50, 100, len(products))
q2_sales = np.random.randint(50, 100, len(products))
q3_sales = np.random.randint(50, 100, len(products))# 计算堆叠的底部位置
bar_width = 0.25
index = np.arange(len(products))# 绘制堆叠条形图
plt.figure(figsize=(10, 6))
plt.bar(index, q1_sales, bar_width, label='Q1')
plt.bar(index, q2_sales, bar_width, bottom=q1_sales, label='Q2')
plt.bar(index, q3_sales, bar_width, bottom=q1_sales+q2_sales, label='Q3')# 设置图表标题和标签
plt.title('产品季度销售数据堆叠条形图')
plt.xlabel('产品')
plt.ylabel('销售额')
plt.xticks(index, products)
plt.legend()plt.show()

结果如下:

这是一个简单的堆叠条形图示例,展示了不同产品在三个季度的销售额。在这个图中,每个产品对应一个条形,每个条形的不同颜色部分代表不同季度的销售额。通过这个图表,我们可以直观地比较不同产品在不同季度的销售情况。

2:饼图 (Pie Chart) - 展示一个或多个类别变量的分布

要绘制一个饼图,我们需要以下信息:

  1. 数据集:一个包含各个部分数值的数据集。
  2. 标签:每个部分对应的标签,用于在饼图上标记。
  3. 颜色:可选,为每个部分指定颜色。

基于以上几点,我将创建一个简单的饼图示例。假设我们有一个关于不同水果销售量的数据集,我们想要通过饼图来展示每种水果的销售比例。

import matplotlib.pyplot as plt# 生成模拟数据
fruits = ['苹果', '香蕉', '橙子', '葡萄', '草莓']
sales = [30, 25, 20, 15, 10]# 绘制饼图
plt.figure(figsize=(8, 6))
plt.pie(sales, labels=fruits, autopct='%1.1f%%', startangle=140)
plt.title('水果销售比例饼图')
plt.show()

结果如下:

这是一个简单的饼图示例,展示了不同水果的销售比例。在这个图中,每种水果的销售量被表示为一个扇形,其大小对应于该水果的销售比例。通过这个图表,我们可以直观地看到各种水果在总销售量中的占比。

3:折线图 (Line Chart) - 展示数值变量随时间或有序类别变量的变化

要绘制一个折线图,我们需要以下信息:

  1. 数据集:至少包含两个变量的数据集,通常一个用于X轴,一个用于Y轴。
  2. 标题和标签:为图表设定一个清晰的标题,以及X轴和Y轴的标签,以便于理解。
  3. 线条样式和颜色:可选,用于区分不同的数据系列。

基于以上几点,我将创建一个简单的折线图示例。假设我们有一个关于某城市一周内每天温度的数据集,我们想要通过折线图来展示这一周温度的变化趋势。

import matplotlib.pyplot as plt
import numpy as np# 生成模拟数据
days = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
temperatures = np.random.uniform(15, 30, len(days))  # 温度数据,假设在15°C到30°C之间# 绘制折线图
plt.figure(figsize=(10, 6))
plt.plot(days, temperatures, marker='o', color='b')
plt.title('一周内每天温度变化折线图')
plt.xlabel('星期')
plt.ylabel('温度 (°C)')
plt.grid(True)
plt.show()

结果如下:

这是一个简单的折线图示例,展示了某城市一周内每天的温度变化。在这个图中,横轴表示星期,纵轴表示温度。每个点代表对应星期的温度,点与点之间的线条显示了温度的变化趋势。

以上就是通过使用Python的matplotlib库来绘制图表描述数值变量与数值变量之间的关系和数值变量与分类变量之间的关系。

点下关注,分享更多有关AI,数据分析和量化金融相关的实用教程和项目。

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

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

相关文章

如何使用ssm实现ssm框架的购物网站+vue

TOC ssm113ssm框架的购物网站vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。…

如何评估Redis的性能

如果系统中出现了大 key、热 key 等,往往会导致 Redis 变慢,但是这个慢该如何界定?多久算慢?1秒还是3秒? 这个肯定是没有标准答案,因为这个和你的硬件设备有关。 硬件差一些,平时响应时间都是…

[C++] 初识 智能指针

标题:[C] 初识 智能指针 水墨不写bug 目录 一、前言 二、智能指针 1. 什么是RAII? 2.智能指针分类 三、智能指针简介 1.std::auto_ptr 2.std::unique_ptr 3.std::shared_ptr 正文开始: 一、前言 C智能指针的出现是有一定的背景的&am…

今天你City了吗?维乐Angel Revo带你穿梭都市自由随风~

当7月的热浪在都市中翻滚,你是否渴望逃离钢筋水泥的束缚,寻找一片属于自己的绿意盎然?今天你City了吗?快带上VELO Angel Revo一起抓住夏日的尾巴,用一场骑行与这座城市的风景共舞!      轻巧出行&#…

Centos安装Jenkins教程详解版(JDK8+Jenkins2.346.1)

本教程基于 JDK8 和 Jenkins2.346.1 JDK安装 下载OpenJDK8文件 wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz解压到指定目录 # 创建目录 mkdir -p /usr/local/software# 解压文件到指定目录&#…

linux-基础知识1

简单命令 init 0 关机 int 6 重启 pwd 查看当前所在目录, cd切换目录 ls 列出目录下的内容 clear 清屏 date 查看时间 路径 linux表示硬件设备的文件在dev目录 /tmp是临时目录,可以创建目录和文件,但不能保证安全 df查看文件系统…

oracle共享池(shared pool):一、工作原理、组成部分 二、软硬解析过程

文章目录 oracle整体结构图共享池(shared pool)shared pool的作用shared pool的组成查询 shared pool 各组成部分大小硬解析和软解析 oracle整体结构图 共享池(shared pool) shared pool的作用 1、 将 sql 语句解析成执行计划 …

【Node】【2】创建node应用

创建node应用 node应用,不仅可以实现web应用,也能实现http服务器。 如果是php写后端,还需要有http服务器,比如apache 或者 nginx。 但是现在主流都是java写后端,也可以像 Node.js 一样用于实现 Web 应用和 HTTP 服务…

easypoi模板导出word多页导出加强版

说明 上一篇文章提到多页导出,但是后边发现一个问题,如果用同一个模板导出多页内容,我们去获取多页内容的时候,会发现全部都一样,举个例子: XWPFDocument document WordExportUtil.exportWord07(outputU…

有限差分学习笔记

有限差分介绍 ​ 在数学中,有限差分法(finite-difference methods,简称FDM),是一种微分方程数值方法,是通过有限差分来近似导数,从而寻求微分方程的近似解。 由泰勒展开式的推导 显式方…

C# 项目管理CLI常用命令

Command Line Interface (CLI) .NET Command Line Interface (CLI) 是一个跨平台的工具链&#xff0c;用于开发、构建、运行和发布基于 .NET Core 和 .NET 5 应用程序。以下是一些常用的 .NET CLI 命令及其简要说明&#xff1a; 创建新项目 dotnet new <template> [-n|…

选择搜索引擎进行搜索

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>选择搜索引擎进行搜索</title><script>function searchSelectedEngine() {var keyword document.getElementById(keyword).value;var engine document.getEl…

【PyTorch】关于Tensorboard的简单使用

前提文章目录 【PyTorch】深度学习PyTorch环境配置及安装【详细清晰】 【PyTorch】深度学习PyTorch加载数据 文章目录 前提文章目录SummaryWriter使用add_image()的使用&#xff08;常用来观察训练结果&#xff09;利用Tensorboard观察图片 SummaryWriter使用 from torch.util…

手把手教你用vite+React18+TS+redux+prettier+eslint+Ant打造企业级前端项目

通过这篇文章你可以学到 如何使用使用 webpack 搭建项目如何在 webpack中集成 typescript如何在 webpack 中集成 React Router 和 Redux如何使用 React 的组件库 Ant Design如何在项目中集成 eslint 和 prettier 保证代码质量如何为团队开发专属的项目模板 环境依赖版本 nod…

Hive SQL语言

目录 Hive SQL之数据库与建库 create database :创建数据库 use database :选择特定的数据库 drop database :删除数据库 Hive SQL之表与建表 create table : 创建表 分隔符指定语法 Hive SQL-DML-Load加载数据 Load语法功能 语法规则之filepath 语法规则之LOCAL …

spring揭秘09-aop03-aop织入器织入横切逻辑与自动织入

文章目录 【README】【1】spring aop的织入【1.1】使用ProxyFactory 作为织入器【1.2】基于接口的代理&#xff08;JDK动态代理&#xff0c;目标类实现接口&#xff09;【补充】 【1.2】基于类的代理&#xff08;CGLIB动态代理&#xff0c;目标类没有实现接口&#xff09;【1.2…

数据缓存软件Redis推出Redis 8 这更改许可证后首个重大版本更新

2024 年 3 月流行的数据库缓存应用 Redis 宣布修改开源许可证&#xff0c;此次修改许可证的目的本质上就是避免大型云计算公司白嫖&#xff0c;例如亚马逊的 AWS 等。AWS 等云计算服务商基于 Redis 推出托管服务并向客户收费&#xff0c;作为开发商 Redis 并没有获得收益&#…

vue的事件修饰符、数组变化侦测、计算属性、class绑定、style绑定

一、事件修饰符 功能&#xff1a;用于简化代码。 .stop 阻止事件冒泡.prevent 阻止默认事件.once.enter 两种使用方式&#xff1a; e.stopPropagation(); //第一种 click.stop"clickP" //第二种 二、数组变化侦测 分为两类&#xff1a; 1、能够引起UI的自动…

如何从头开始编写一个简单的 RPC 协议(手写 Dubbo 的自定义协议)

1. 设计协议格式 首先&#xff0c;需要定义协议的数据包格式&#xff0c;这通常包括头部&#xff08;Header&#xff09;和主体&#xff08;Body&#xff09;两部分。 Header&#xff1a;存储协议的元数据&#xff0c;例如消息类型、序列化方式、请求 ID 等。 Magic Number (2…

阿里云CentOs ClickHouse安装

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; ClickHouse安装目录 前言…