第五章. 可视化数据分析图表—常用图表的绘制4—箱形图,3D图表

news2024/10/7 4:22:25

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

5.3 常用图表的绘制4—箱形图,3D图表

本节主要介绍常用图表的绘制,主要包括箱形图,3D柱形图,3D曲面图。

1.箱形图(matplotlib.pyplot.boxplot)

·箱形图又称箱线图、盒须图或盒式图
·用于显示一组数据分散情况的统计图
·优点:不受异常值的影响,可以以一种相对稳定的方式描述数据的离散分布情况,也常用于异常值的识别

1).语法:

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_ticks=True, autorange=False, zorder=None, *, data=None

参数说明:
x:指定要绘制箱形图的数据
notch:是否以凹口的形式展现箱形图,默认False
sym:指定异常点的形状,默认‘+’
vert:是否需要将箱形图垂直摆放,默认True
whis:指定上下限与上下四分位的距离,默认1.5倍的四分位差
positions :指定箱形图的位置,默认位[0,1,2…]
widths:指定箱形图的宽度,默认为0.5
patch_artist:是否填充箱体的颜色
meanline:是否用线的形式表示均值,默认用点
showmeans: 是否显示均值,默认False
showcaps:是否显示箱形图顶端和末端的两条线,默认True
showbox:是否显示箱形图的箱体,默认True
showfliers:是否显示异常值,默认True
boxprops:设置箱子的属性,如边框色,填充色
labels:为箱体填充标签,类似于图例
flierprops: 设置异常值的属性,如异常点的形状,颜色,填充色
medianprops:设置中位数的属性,如线的类型,颜色
meanprops: 设置均值的属性,如点的大小,颜色
capprops:设置箱形图顶端和末端线条的属性,如颜色,粗线
whiskerprops:设置必须的属性,如颜色,粗细,线的类型等

2).示例:

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

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='Sheet6')

plt.boxplot(x=df['value'], whis=1.5, widths=0.5, patch_artist=True, showmeans=True, boxprops={'facecolor': 'c'},
            flierprops={'markerfacecolor': 'red', 'markersize': 4},
            meanprops={'marker': '*', 'markerfacecolor': 'skyblue'}, medianprops={'linestyle': '--', 'color': 'orange'},
            capprops={'color': 'r'})

Q1 = df['value'].quantile(q=0.25)
Q2 = df['value'].quantile(q=0.5)
Q3 = df['value'].quantile(q=0.75)

low_limit = Q1 - 1.5 * (Q3 - Q1)
upper_limit = Q3 + 1.5 * (Q3 - Q1)

print('下四分位数:', Q1)
print('中位数:', Q2)
print('上四分位数:', Q3)
print('下限:', low_limit)
print('上限:', upper_limit)

# 查找异常值
val = df['value'][(df['value'] > upper_limit) | (df['value'] < low_limit)]
print('数据中的异常值:', val)

#显示图像
plt.show()

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

3).数学层面理解箱形图每个部分的含义(下四分位线,中位数,上四分位数,上限,下限,异常值,极端异常值)

  • 名词说明:
    ·下四分位数:指数据的25%分位点所对应的值(Q1)
    ·中位数:指数据的50%分位点所对应的值(Q2)
    ·上四分位数:指数据的75%分位点所对应的值(Q3)
    ·上限:上限=Q3+1.5*(Q3-Q1)
    ·下限:下限=Q1-1.5*(Q3-Q1)
    ·异常值的判定标准:当变量的数据值大于上限或小于下限时,判定为异常值

  • 计算方法:
    1).数据集:7,36,15,39,41,40
    2).按从小到大的顺序对数据集进行排列:7,15,36,39,40,41
    3)确定四分位数索引位置的根据公式:1+(n-1)*数据的百分比分位点,在根据索引位置确定索引所对应的数据值(n是数据集的数量 n=6)
    ·Q1_position=1+(6-1)*0.25=2.25 (Q1在第二个数和第三个数之间)
    ·Q1_value=15+(36-15)*(2.25-2)=20.25
    ·Q2_position=1+(6-1)*0.5=3.5 (Q2在第三个数和第四个数之间)
    ·Q2_value=36+(39-36)*(3.5-3)=37.5
    ·Q3_position=1+(6-1)*0.75=4.75 (Q3在第四个数和第五个数之间)
    ·Q3_value=39+(40-39)*(4.75-4)=39.75
    ·上限=39.75+(39.75-20.25)*1.5=69
    ·下限=20.25-(39.75-20.25)*1.5=-9

  • 极端异常值:
    ·极端上限:上限=Q3+3*(Q3-Q1)
    ·极端下限:下限=Q1-3*(Q3-Q1)
    ·极端异常值的判定标准:当变量的数据值大于极端上限或小于极端下限时,判定为极端异常值

2.3D图表—三维柱形图

1).语法:

mpl_toolkits.mplot3d.axes3d.bar(left, height, zs=0, zdir=‘z’, *args, **kwargs) 

参数说明:
left:x轴数据集
height:柱子的高度
zs:z轴的数据集
zdir:可选参数{‘x’, ‘y’, ‘z’}, 默认: ‘z’

2).示例:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np

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

#创建画布
fig = plt.figure()

# 创建3D坐标系 
axes3d = Axes3D(fig)
x = np.arange(0, 5)
zs = np.arange(1,15,5)
for z in zs:
    y = np.random.randint(0, 100, size=5)
    axes3d.bar(x, y, zs=z, zdir='x', color=['r', 'g', 'y', 'c'])
    
plt.xticks(zs, ['小明', '小美', '小强'])
plt.yticks(x, ['语文', '数学', '英语', '物理', '生物'])
plt.xlabel('姓名')
plt.ylabel('学科')

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


# 调整图表与画布边缘间距
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.3D图表—三维曲面图

1).语法:

mpl_toolkits.mplot3d.axes3d.plot_surface( X, Y, Z, *, norm=None, vmin=None,vmax=None, lightsource=None, **kwargs) 

参数说明:
X, Y, Z,:2D数组形式的数据值
rstride:数组行距(步长大小)
cstride:数组列距(步长大小)
color:曲面块颜色
cmap:颜色块颜色映射
facecolors:单独曲面块表面颜色
norm:将值映射为颜色的 Nonnalize实例
vmin:映射的最小值
vmax:映射的最大值

2).示例:


import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np

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

#创建画布
fig = plt.figure()

# 创建3D坐标系 
axes3d = Axes3D(fig)
x = np.arange(-5.0, 5.0,0.5)
y = np.arange(-3.0,3,0.5)

#返回list,对x,y数据进行网格化
X,Y=np.meshgrid(x,y)

Z1=np.sin(X)
Z2=np.sin(Y)
Z=(Z1-Z2)*2

surf=axes3d.plot_surface(X, Y, Z, cmap=plt.get_cmap('rainbow'))

# 设置标题
plt.title("3D曲面图")
fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

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

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

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

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

相关文章

你还在为 “动态规划” 发愁吗?看完本秘籍,带你斩杀这类题~

目录 前言 一、动态规划——解题思路 二、动态规划——模板以及题目 2.1、Fibonacci 2.2、字符串分割(Word Break) 2.3、三角矩阵(Triangle&#xff09; 2.4、路径总数(Unique Paths&#xff09; 2.5、最小路径和(Minimum Path Sum) 2.6、背包问题 2.7、回文串分割(Pa…

第08讲:使用脚手架创建vue项目

一、安装NodeJS 二、配置环境变量 2.1、软件安装完成之后配置npm的环境变量 第1步&#xff1a;获取npm安装位置 使用管理员身份打开CMD&#xff0c;用如下命令获取npm的安装位置&#xff1a; npm config list第2步&#xff1a;配置环境变量 将以上获取的路径保存到path变…

flask请求与响应、session执行流程

目录 请求对象 响应对象 session的使用和原理 闪现(flash) 请求扩展 蓝图 请求对象 请求对象request是全局的&#xff0c;需要导入这个全局的request&#xff0c;在哪个视图函数中就是当次的request对象 请求数据&#xff1a; request.method # 获取提交的方法 …

文件包含漏洞简介

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是文件包含漏洞简介。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未授权设备…

一些好玩的js小作品

今天小编给大家带来了一些很实用的js小作品&#xff0c;下面请一看究竟。 1、计算详细年龄工具js脚本 2、检测是否安装Flash插件及版本号js脚本 3、无法查看源码的页面 4、面积换算js脚本 5、体积和容积换算js脚本 6、长度换算js脚本 7、重量换算js脚本 8、只能输入汉字…

记一些女装数据分析

文章目录服装维度女装生命周期门店维度常见度量值衍生指标服装维度 尺码&#xff1a;XS、S、M、L、XL颜色&#xff1a;黑、红、蓝、白……一级分类&#xff1a;上半身、下半身、全身季节&#xff1a;春、夏、秋、冬价格类型&#xff1a;正价、特价、折扣价、降价、优惠券…价格…

Android自定义ViewGroup布局进阶,完整的九宫格实现

自定义ViewGroup九宫格 前言 在之前的文章我们复习了 ViewGroup 的测量与布局&#xff0c;那么我们这一篇效果就可以在之前的基础上实现一个灵活的九宫格布局。 那么一个九宫格的 ViewGroup 如何定义&#xff0c;我们分解为如下的几个步骤来实现&#xff1a; 先计算与测量九…

【Linux学习】进程信号

文章目录前言一、信号初识1. 信号的概念2. Linux中的普通信号3. 信号的处理二、信号产生1. 终端按键产生信号2. 系统调用发送信号2.1 kill函数2.2 raise函数2.3 abort函数3. 由软件条件产生信号3.1 SIGPIPE信号3.2 alarm函数4. 由硬件异常产生信号三、信号阻塞1. 信号阻塞即其他…

[前端面试题]flex上下布局

[前端面试题]flex上下布局 [万字长文]一文教你彻底搞懂flex布局 [CSS]一些flex的应用场景 页面中有两个元素。元素bottom固定在底部&#xff0c;靠内容来撑开&#xff1b;而元素top在上边&#xff0c;高度自适应&#xff0c;自动铺满除bottom剩下的空间&#xff0c;且top内容…

第十四届蓝桥杯集训——JavaC组第十篇——分支语句

第十四届蓝桥杯集训——JavaC组第十篇——分支语句 目录 第十四届蓝桥杯集训——JavaC组第十篇——分支语句 if单分支 if单分支语法 if单分支语句示例 单分支例题&#xff1a; 连续单分支示例 if简写语法 if双分支语句 if双分支语法 if双分支语法示例 if双分支简写法…

全栈jmeter接口测试教程之Jmeter+ant+jenkins实现持续集成

jmeterantjenkins持续集成 一、下载并配置jmeter 首先下载jmeter工具&#xff0c;并配置好环境变量&#xff1b;参考&#xff1a;https://www.cnblogs.com/YouJeffrey/p/16029894.html jmeter默认保存的是.jtl格式的文件&#xff0c;要设置一下bin/jmeter.properties,文件内容…

圣诞节快来了~用python做一个粒子烟花震撼众人赚个女孩回来吧~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 准备 准备一下你运行效果的背景图 以及一首你喜欢或那你女朋友喜欢的音乐 效果 代码展示 导入模块 import random import pygame as py import tkinter as tk from time import time, sleep fr…

Fuzzing with Data Dependency Information阅读笔记

相关数据 论文&#xff1a;https://www.s3.eurecom.fr/docs/eurosp22_mantovani.pdf 开源代码&#xff1a;https://github.com/elManto/DDFuzz 论文背景 这篇论文是2022年发表在sp上的一篇论文&#xff0c;也是在afl的基础上进行改进的一篇论文。afl是在afl的基础上进行整合…

第二十六章 linux-输入子系统二

第二十六章 linux-输入子系统二 文章目录第二十六章 linux-输入子系统二框架三个重要结构体struct input_devstruct input_handlerstruct input_handle框架 Linux系统支持的输入设备繁多&#xff0c;例如键盘、鼠标、触摸屏、手柄或者是一些输入设备像体感输入等等&#xff0c…

[附源码]Python计算机毕业设计电子投票系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

30岁转行网络安全来得及吗?有发展空间吗?

30岁转行网络安全来得及吗?有发展空间吗? 现阶段&#xff0c;很多30岁左右的人群都面临就业难的问题&#xff0c;尤其是对于年龄已过30.没有一技之长的人。现阶段&#xff0c;网络安全行业已成了风口行业&#xff0c;也有很多30岁人群也想转行学习网络安全&#xff0c;但又担…

python之界面案例

目录 一、海龟绘图 二、图形化编程入门 窗口创建 三、表格控件的简单认知 四、综合案例 一、海龟绘图 海龟绘图作用&#xff1a;提升界面美观度&#xff0c;吸引用户使用 学习网址&#xff1a; turtle --- 海龟绘图 — Python 3.8.14 文档 二、图形化编程入门 窗口创建 …

【数据结构与算法】跳表

目录 一、什么是跳表 二、跳表的效率验证 三、跳表的实现 1、search 2、add 3、erase 四、跳表与其它搜索结构对比 总结 一、什么是跳表 跳表是一个随机化的数据结构&#xff0c;可以被看做二叉树的一个变种&#xff0c;它在性能上和红黑树&#xff0c;AVL树不相上下&am…

【高精度定位】RTK定位与RTD定位知识科普

高精度定位一般指亚米级别或厘米级别的定位&#xff0c;常见的室内有蓝牙AoA和UWB两种技术&#xff0c;室外有北斗地基增强技术&#xff0c;这些技术都是采用算法进行定位。 工业4.0时代&#xff0c;在资源和环境约束不断强化的背景下&#xff0c;创新驱动传统制造向智能制造转…

【MAUI】条形码,二维码扫描功能

前言 本系列文章面向移动开发小白&#xff0c;从零开始进行平台相关功能开发&#xff0c;演示如何参考平台的官方文档使用MAUI技术来开发相应功能。 介绍 移动端的扫描条形码、二维码的功能已经随处可见&#xff0c;已经很难找到一个不支持扫描的App了&#xff0c;但是微软的…