第五章. 可视化数据分析图表—常用图表的绘制3—散点图,面积图,热力图

news2024/11/25 14:20:14

第五章. 可视化数据分析图

5.3 常用图表的绘制3—散点图,面积图,热力图

本节主要介绍常用图表的绘制,主要包括散点图,面积图,热力图。

1.散点图(matplotlib.pyplot.scatter)

·散点图主要用来查看数据的分布情况或相关性,一般用在线性回归分析中,查看数据点在坐标系上分布情况
·散点图与折线图的区别:散点图的各点之间不会按照前后关系以线条联系起来

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:数据位置(x,y轴数据)。
s:标记大小,都一样大就填写一个数,想不同点大小不同,就写成一个向量 例s=[100,5]。
c:标记颜色,默认为blue。
marker:标记样式。
alpha:透明度。
linewidths: 线宽 默认是’face’。
edgecolors: 轮廓颜色(边框颜色)。

2).示例:

import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet4')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题


plt.scatter(df['姓名'], df['语文'], color='r')

# 设置网格线
plt.grid(color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('姓名')
plt.ylabel('分数')

# 设置坐标轴刻度
# plt.xticks(range(0, 150, 25))
plt.yticks(range(0, 150, 10))

# 设置文本标签
for x, y in zip(df['语文'], range(0, 150, 25)):
    plt.text(x, y, '%.2f' % y, ha='center', va='center', fontsize=8, color='darkorange')

# 设置标题和图例
plt.title('语文成绩')

# 设置图标图例
plt.legend(df['语文'], title='成绩',loc='upper right')  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

清单.xlsx表格中的数据
在这里插入图片描述

结果展示:
在这里插入图片描述

2.面积图(matplotlib.pyplot.stackplot)

面积图用于体现数量随着时间变化的程度,也可用于引起人们对总体趋势的注意。

1).语法:

matplotlib.pyplot.stackplot(x,,*args,data=None,**kwags)

参数说明:
x:数据集,最终的直方图将对数据集进行统计
*args:当传入的参数个数未知时,使用 *args,指y轴数据中可以传入多少个y轴
data:如果给定一个数据参数,所有位置和关键字参数将会被替换掉
**kwags:关键字参数,例如color,alpha

2).示例:

清单.xlsx表格中的数据
在这里插入图片描述

  • 示例1:标准面积图
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet2')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

#标准面积图
plt.stackplot(df['姓名'], df['语文'], color='c')

# # 设置网格线
# plt.grid(color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('姓名')
plt.ylabel('分数')

# 设置坐标轴刻度
# plt.xticks(range(0, 150, 25))
# plt.yticks(range(0, 150, 10))

# 设置文本标签
for x, y in zip(df['语文'], range(0, 150, 25)):
    plt.text(x, y, '%.2f' % y, ha='center', va='center', fontsize=8, color='darkorange')

# 设置标题和图例
plt.title('语文成绩')

# 设置图标图例
plt.legend(df['语文'], title='成绩',loc='upper right')  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

  • 示例2:堆叠面积图

    • 注意: 颜色是colors,不是color,若是color,堆叠面积图的颜色会是相同的
      在这里插入图片描述

代码:

import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet2')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 堆叠面积图
plt.stackplot(df['姓名'], df['语文'], df['数学'], df['英语'], colors=['c', 'skyblue', 'orange'])

# # 设置网格线
# plt.grid(color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('姓名')
plt.ylabel('分数')

# 设置坐标轴刻度
# plt.xticks(range(0, 150, 25))
# plt.yticks(range(0, 150, 10))

# 设置标题和图例
plt.title('成绩')

# 设置图标图例
plt.legend([['语文'],['数学'],['英语']], title='成绩', loc='upper right')  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

3.热力图

热力图是通过密度函数进行可视化,用与表示地图中点的密度热图,利用热力图可以看数据表里的多个特征中的两两内容的相似度

1).示例1:

import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet2')
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='white')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 热力图
y = df['姓名']
x = df.loc[:, '语文':'物理'].values
plt.imshow(x)  # 负责对图像进行处理,并显示其格式,但是不能显示

# # 设置网格线
# plt.grid(color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('学科')
plt.ylabel('姓名')

# 设置坐标轴刻度
plt.xticks(range(0, 6, 1), ['语文', '数学', '英语', '生物', '化学', '物理'])
plt.yticks(range(0, 6, 1), y)

# 设置标题和图例
plt.title('学生成绩统计热力图')

# 显示颜色条
plt.colorbar()

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

注意:代码中所涉及到的函数和参数,在图表的常用设置1 和 图表的常用设置2 有所介绍

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

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

相关文章

Redux Hooks actions 调用方式优化(一)

hooks 可以说是现在react编程的的主流,redux 迎合这个主流也推出 toolkit 工具集来。但是在用toolkit 搭建前端框架后,给人的感觉就是比原先的connect 那一套好些,但用起来还是挺繁琐的。 一 toolkit 搭建的正常使用版本 1.1 创建store im…

三、pcm音频转wav

前言 ffmpeg录制下来的音频为pcm格式(内部存储着十六进制数据),但pcm格式的音频无法直接播放 本文先将pcm转换成wav格式(提要提前了解音频知识) 首先分析wav文件格式(wav的本质是在pcm数据前加上文件头&a…

[附源码]Node.js计算机毕业设计电子工厂进销存管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

《Linux运维总结:Centos7.6使用yum安装Mysql8.0.31》

一、使用yum安装mysql服务 官方:下载对应的yum源 1、yum源下载 [rootlocalhost ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm [rootlocalhost ~]# rpm -ivh mysql80-community-release-el7-7.noarch.rpm如下图所示:…

vsftpd 升级3.0.2-29 和 增加账号访问

一、下载文件至/opt 百度网盘: 链接: https://pan.baidu.com/s/1Ad20bm5fvw8WvtaV3uHGYA 提取码: 2pa9 二、安装 2.1、切换目录 命令:cd /opt 2.2、授权 命令:chmod x centos7.6-vsftpd-upgrade.sh 2.3、安装 命令:./cent…

D. Lucky Chains(gcd + 线性筛)

Problem - D - Codeforces 如果一对正整数(x,y)的最大公除数等于1(gcd(x,y)1),我们就把它们命名为幸运。 让我们把由(x,y)引起的链定义为一个由(x,y), (x1,y1), (x2,y2), ..., (xk,yk)组成的序列,对于某个整数k≥0。 如果链中的所有配对都是幸运的&…

2022-12-13 note

1、linux内核的特点 1. linux内核是完全开源的作者:linusgit --> 代码版本管理工具 2. linux内核源码支持多种不同的架构,比如arm架构,powerPC,mips,Risc-V,X86等 3. linux内核采用模块化的编译的思想 4. 在linux内核中只允许出现C代码或…

优秀的PM如何轻松应对公司90%以上的沟通难题

项目经理和PMO工作中最多的事情往往是沟通,但是你在工作中会不会遇到很多沟通难题?如果其他环节的人处理不好还可以理解,但是咱们处理不好就说不过去了,并且还会让人感觉不专业,丧失很多机会,甚至失去领导的…

代码随想录Day49|121.买卖股票的最佳时期、122.买卖股票的最佳时期II

文章目录121.买卖股票的最佳时期、122.买卖股票的最佳时期II121.买卖股票的最佳时期、 文章讲解:代码随想录 (programmercarl.com) 题目链接:121. 买卖股票的最佳时机 - 力扣(LeetCode) 题目: 给定一个数组 prices…

Metal每日分享,调整灰度系数gamma滤镜效果

本案例的目的是理解如何用Metal实现灰度系数效果滤镜,输入像素rgb进行次方运算获取到新的rgb; Demo HarbethDemo地址 实操代码 // 灰度系数滤镜 let filter C7Gamma.init(gamma: 3.0)// 方案1: ImageView.image try? BoxxIO(element: originImage,…

[附源码]Node.js计算机毕业设计儿童闲置物品交易网站Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

六、JavaScript——变量的内存结构

一、内存 定义&#xff1a;内存是用于存储数据的地方&#xff0c;程序要执行一段代码&#xff0c;要先从硬盘加载到内存当中&#xff0c;再由内存发送给CPU,CUP才能对代码进行执行。 注&#xff1a;变量并不存储任何值&#xff0c;而是存储值的内存地址 JS定义一个变量 <s…

Telerik模拟生成规则的新设置

Telerik模拟生成规则的新设置 添加了对Microsoft.NET 7官方版本的支持。 添加了控制模拟生成规则的设置。 Telerik JustLock是一个易于使用的模拟工具&#xff0c;它将帮助您以前所未有的速度、更高的质量编写单元测试。JustLock允许您轻松地将测试场景与难以配置的依赖关系(如…

5G现场网的数字孪生体系架构

现场网面向钢铁生产和统一管理的场景&#xff0c;实现现场设备与数据采集器和控制器的网络连接和数据互通&#xff0c;现场网的ZigBee、蓝牙等短距离技术以及窄带物联网&#xff08; narrowbandinternetofthings,NB-IoT&#xff09;、超远距离&#xff08;longrange,LoRa&#…

病历开发SDK:TX Text Control ActiveX 31.x Crack

Visual Basic 6 应用程序的文档处功能齐全的文档编辑器 TX Text Control ActiveX是一种完全可编程的 Rich Edit 控件&#xff0c;它在专为 Visual Studio 设计的可重用组件中为开发人员提供了广泛的文字处理功能。它提供全面的文本格式、强大的邮件合并功能和所有文字处理关键概…

算法训练四十八天 | LeetCode 198、213、337打家劫舍专题

LeetCode 198 打家劫舍 题目简析&#xff1a; 不能偷相邻的屋子&#xff0c;求能偷到的最大金额 思路分析&#xff1a; //由于是相邻的才偷&#xff0c;因此&#xff0c;我们对于最基础的三间 //dp[3] 应该是 Math.max(dp[2],dp[1]nums[3]) //如果第一间加偷第三间的价值大…

pytest + yaml 框架 -10.allure 生成报告

前言 本插件是基于pytest框架开发的&#xff0c;所以pytest 的插件都能使用&#xff0c;生成报告可以用到 allure 报告 pip 安装插件 pip install pytest-yaml-yoyoallure 报告功能在 v1.0.8 版本上实现 allure 命令行工具 allure 是一个命令行工具&#xff0c;需要去githu…

大话设计模式之设计原则

设计原则 参考链接&#xff1a;https://datawhalechina.github.io/sweetalk-design-pattern/#/content/design_principles/dependence_inversion_principle 主要介绍以下五个设计原则&#xff1a; 1、单一职责原则 顾名思义&#xff0c;一个类只有一个职责&#xff0c;只会…

React 16.8+生命周期(新)

React16之后有三个生命周期被废弃&#xff1a; componentWillMountcomponentWillReceivePropscomponentWillUpdate React 16.8的生命周期分为三个阶段&#xff0c;分别是挂载阶段、更新阶段、卸载阶段。 挂载阶段&#xff1a; constructor&#xff1a;构造函数&#xff0c;最…

【元胞自动机】基于元胞自动机模拟考虑心理策略的人员疏散附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …