Python可视化在量化交易中的应用(15)_Seaborn箱线图小提琴图

Seaborn中箱线图和小提琴图的绘制方法
箱线图和小提琴图常被用来观测数据的中位数、上下四分位数分布范围以及异常值的分布情况。
seaborn中绘制箱线图使用的是sns.boxplot()函数。
sns.boxplot(x,y,hue,data,order,hue_order,orient,color,palette,saturation=0.75,width=0.8,dodge,fliersize=5,linewidth,whis=1.5,ax,**kwargs,)
关键常用参数说明:
x, y:指定要绘制箱线图的数据,x和y分别表示数据在x轴和y轴上的位置。其中,x和y参数只能指定一个,另一个参数需设置为None。
hue:可选参数,用于按照某个分类变量对数据进行分组,绘制不同颜色的箱线图。默认值为None,表示不进行分组。
data:指定要绘制箱线图的数据集,可以是DataFrame、Series、数组或列表等。
order:可选参数,用于指定箱线图中箱体的顺序。默认值为None,表示按照数据的顺序绘制箱体;可以设置为一个列表或数组,指定箱体的顺序。
hue_order:可选参数,用于指定分组变量的顺序。默认值为None,表示按照数据的顺序绘制分组变量;可以设置为一个列表或数组,指定分组变量的顺序。
orient:可选参数,用于指定箱线图的方向。默认值为"v",表示垂直方向;可以设置为"h",表示水平方向。
palette:可选参数,用于指定颜色调色板。默认值为None,表示使用默认的颜色调色板;可以设置为一个颜色调色板名称或一个颜色列表。
width:可选参数,用于指定箱体的宽度。默认值为0.8,表示箱体的宽度为整个数据范围的80%;可以设置为一个浮点数,表示宽度的比例。
dodge:可选参数,用于指定是否对分组变量进行分开绘制。默认值为False,表示不分开绘制;可以设置为True,表示分开绘制。
fliersize:可选参数,用于指定异常值的大小。默认值为5,表示异常值的大小为5个像素;可以设置为一个整数,表示大小的值。
linewidth:可选参数,用于指定箱线图的线宽。默认值为1,表示线宽为1个像素;可以设置为一个整数,表示线宽的值。
whis:可选参数,用于指定箱线图中异常值的范围。默认值为1.5,表示异常值的范围为上下四分位数加减1.5倍的四分位距;可以设置为一个浮点数,表示异常值的范围的倍数。
ax:可选参数,用于指定绘制箱线图的坐标轴对象。默认值为None,表示使用当前坐标轴。
**kwargs:用于传递其他绘图参数,例如图像的标题、标签、颜色等。

seaborn中绘制小提琴图使用的是violinplot()函数。
sns.violinplot(x,y,hue,data,order,hue_order,bw=‘scott’,cut=2,scale=‘area’,scale_hue,gridsize=100,width=0.8,inner=‘box’,split,dodgee,orient,linewidth,color,palette,saturation=0.75,ax,**kwargs,)
关键常用参数说明:
x, y:指定要绘制小提琴图的数据,x和y分别表示数据在x轴和y轴上的位置。其中,x和y参数只能指定一个,另一个参数需设置为None。
hue:可选参数,用于按照某个分类变量对数据进行分组,绘制不同颜色的小提琴图。默认值为None,表示不进行分组。
data:指定要绘制小提琴图的数据集,可以是DataFrame、Series、数组或列表等。
order:可选参数,用于指定小提琴图的顺序。默认值为None,表示按照数据的顺序绘制小提琴图;可以设置为一个列表或数组,指定小提琴图的顺序。
hue_order:可选参数,用于指定分组变量的顺序。默认值为None,表示按照数据的顺序绘制分组变量;可以设置为一个列表或数组,指定分组变量的顺序。
bw:可选参数,用于指定小提琴图的核密度估计带宽。默认值为"scott",表示使用Scott方法计算带宽;可以设置为一个浮点数,表示带宽的值。
cut:可选参数,用于指定小提琴图的尾部截断方式。默认值为None,表示不进行尾部截断;可以设置为一个数值,表示尾部截断的百分比。
scale:可选参数,用于指定小提琴图宽度的缩放因子。默认值为"area",表示根据样本数量自动缩放宽度;可以设置为"width",表示根据指定的宽度进行缩放。
scale_hue:可选参数,用于指定小提琴图在hue分组时的宽度缩放因子。默认值为1,表示不进行宽度缩放;可以设置为一个浮点数,表示宽度的缩放因子。
gridsize:可选参数,用于指定核密度估计的网格大小。默认值为100,表示网格大小为100x100;可以设置为一个整数,表示网格大小的值。
width:可选参数,用于指定小提琴图的宽度。默认值为0.8,表示宽度为整个数据范围的80%;可以设置为一个浮点数,表示宽度的比例。
inner:可选参数,用于指定小提琴图内部的表示方式。默认值为"box",表示绘制箱线图;可以设置为"quartile",表示绘制四分位线;可以设置为"point",表示绘制散点图;可以设置为"stick",表示绘制线段。
split:可选参数,用于指定是否将小提琴图的两侧分开显示。默认值为False,表示不分开显示;可以设置为True,表示分开显示。
orient:可选参数,用于指定小提琴图的方向。默认值为"v",表示垂直方向;可以设置为"h",表示水平方向。
palette:可选参数,用于指定颜色调色板。默认值为None,表示使用默认的颜色调色板;可以设置为一个颜色调色板名称或一个颜色列表。
ax:可选参数,用于指定绘制小提琴图的坐标轴对象。默认值为None,表示使用当前坐标轴。
**kwargs:用于传递其他绘图参数,例如图像的标题、标签、颜色等。
【例5.17】使用seaborn绘制平安银行2023年一季度开盘价、收盘价、最高价和最低价的箱线图和小提琴图
代码如下:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 设置为默认字体
plt.rcParams['font.family'] = 'SimHei'
# 显示负数
plt.rcParams['axes.unicode_minus'] = False# 导入数据
df = pd.read_excel("2023年一季度A股日线行情.xlsx")# 将日期列转化为日期格式
df["trade_date"] = df["trade_date"].astype("str").apply(lambda x:x[:4]+"-"+x[4:6]+"-"+x[6:])
# 将日期列转换为日期类型,并设置为索引列
df['trade_date'] = pd.to_datetime(df['trade_date'])
df.set_index('trade_date', inplace=True)# 筛选出股票代码是"000001.SZ"平安的股票
stock = df[df['ts_code'] == '000001.SZ']# 绘制开盘价、收盘价、最高价、最低价的箱线图
# 设置各个子图的标题
titles = ['open', 'close', 'high', 'low']# 创建一个2x2的子图布局
fig, ax = plt.subplots(2, 2, figsize=(10, 10))# 依次创建各个箱线图子图
for i in range(4):prices = stock[titles[i]]sns.boxplot(data=prices, ax=ax[i//2][i%2])ax[i//2][i%2].set_title(titles[i])ax[i//2][i%2].set_xlabel("Price")ax[i//2][i%2].set_ylabel("Frequency")
plt.show()

代码运行效果如下图所示:
在这里插入图片描述

在【例5.17】代码的基础上补充以下代码:

# 箱线图转化为小提琴图
# 创建一个2x2的子图布局
fig, ax = plt.subplots(2, 2, figsize=(10, 10))# 依次创建各个子图
for i in range(4):prices = stock[titles[i]]sns.violinplot(data=prices, ax=ax[i//2][i%2])ax[i//2][i%2].set_title(titles[i])ax[i//2][i%2].set_xlabel("Price")ax[i//2][i%2].set_ylabel("Frequency")
plt.show()

该代码段的运行效果如下图所示:
在这里插入图片描述

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

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

相关文章

干翻Dubbo系列第十二篇:Dubbo协议介绍

文章目录 文章说明 一:Dubbo协议 1:Dubbo协议简介 2:Dubbo协议优点 3:Dubbo协议帧的组成 (一):幻数 (二):2Way (三):event (四):Serilization ID (五):status …

markdown编写微信公众号文章

微信公众号文章编写,暂不支持MarkDown的使用, 推荐工具: 墨滴 全称叫做: Makedown Nice,后面会以mdNice代替使用。 通过官网的写文章,支持在线编译安装chrome浏览器插件, 支持在微信公众号编译…

Mariadb高可用MHA

目录 前言 一、概述 (一)、概念 (二)、组成 (三)、特点 (四)、工作原理 二、案例 (一)、构建MHA 1.所有节点ssh免密登录 2、MySQL主从复制 &#x…

tauri-vue:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果

Tauri Vue Typescript 一个使用 taurivuets 开发跨平台软件的模板,支持窗口头部自定义 UI 和拖拽和窗口阴影,不用再自己做适配了,拿来即用,非常 nice。而且已经封装好了 tauri 的 http 请求工具,省去很多弯路。开源…

【C++】做一个飞机空战小游戏(八)——生成敌方炮弹(rand()和srand()函数应用)

[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动 【C】做一个飞…

Ansys Zemax | 手机镜头设计 - 第 1 部分:光学设计

本文是 3 篇系列文章的一部分,该系列文章将讨论智能手机镜头模组设计的挑战,从概念、设计到制造和结构变形的分析。本文是三部分系列的第一部分,将专注于OpticStudio中镜头模组的设计、分析和可制造性评估。(联系我们获取文章附件…

C++学习一STL

文章目录 一、STL基本概念1.泛型程序设计2.STL中的基本的概念 二、容器概述1.简介2.顺序容器3.关联容器4.容器适配器5.成员函数 三、迭代器1.概念2.双向迭代器3.随机访问迭代器4.容器上的迭代器类别 四、算法1.概念2.不变序列算法2.变值算法4.删除算法5.变序算法6.排序算法7. 堆…

C++11并发与多线程笔记(11) std::atomic续谈、std::async深入谈

C11并发与多线程笔记&#xff08;11&#xff09; std::atomic续谈、std::async深入谈 1、std::atomic续谈2、std::async深入理解2.1 std::async参数详述2.2 std::async和std::thread()区别&#xff1a;2.3 async不确定性问题的解决 1、std::atomic续谈 #include <iostream&…

视频汇聚集中存储EasyCVR平台调用iframe地址视频无法播放,该如何解决?

安防监控视频汇聚平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝…

leetcode:1668. 最大重复子字符串(python3解法)

难度&#xff1a;简单 给你一个字符串 sequence &#xff0c;如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串&#xff0c;那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的…

No view found for id 0x7f0901c3 for fragment解决以及线上bug排查技巧

情景再现 开发这么久&#xff0c;不知道你们是否也经历过这样的情况&#xff0c;测试或者用户&#xff0c;反馈app闪退&#xff0c;结果你自己打开开发工具&#xff0c;去调试&#xff0c;一切正常&#xff0c;然后闪退还是存在&#xff0c;只是在开发环境中不能重现。这种情况…

UML图绘制 -- 类图

1.类图的画法 类 整体是个矩形&#xff0c;第一层类名&#xff0c;第二层属性&#xff0c;第三层方法。 &#xff1a;public- : private# : protected空格: 默认的default 对应的类写法。 public class Student {public String name;public Integer age;protected I…