Python可视化在量化交易中的应用(14)_Seaborn散点图

news2024/12/27 13:43:04

Seaborn中带回归线的散点图的绘制方法

seaborn中绘制散点图使用的是sns.scatterplot()函数:
sns.scatterplot(x,y,hue,style,size,data,palette,hue_order,hue_norm,sizes,size_order,size_norm,markers,style_order,x_bins,y_bins,units,estimator,ci=95,n_boot=1000,alpha,x_jitter,y_jittere,legend=‘auto’,ax,**kwargs,)

关键常用参数说明:

x, y:可选参数,用于指定数据集中散点图的x轴和y轴数据。
hue:可选参数,用于指定分类变量,根据该变量的不同取值,散点图的颜色会有所区分。
style:可选参数,用于指定分类变量,根据该变量的不同取值,散点图的样式会有所区分。
size:可选参数,用于指定数值变量,根据该变量的不同取值,散点图的大小会有所区分。
data:必需的参数,用于指定数据集。可以是一个Pandas的DataFrame、Numpy的数组、Python的列表或其他类似的数据结构。
palette:可选参数,用于指定颜色的调色板。可以是一个字符串,表示调色板的名称;也可以是一个字典,表示每个分类变量取值对应的颜色。
sizes:可选参数,用于指定散点图的大小范围。可以是一个元组,表示大小的最小值和最大值;也可以是一个列表,表示不同大小的取值范围。
markers:可选参数,用于指定散点图的标记样式。可以是一个字符串,表示标记样式的名称;也可以是一个列表,表示不同分类变量取值对应的标记样式。
alpha:可选参数,用于指定散点图的透明度。可以是一个浮点数,表示透明度的值;也可以是一个字符串,表示透明度的名称。
ax:可选参数,用于指定绘图的坐标轴。如果没有指定,则会创建一个新的坐标轴。
**kwargs:用于传递其他绘图参数,例如图像的标题、标签、颜色等。

在绘制散点图时,我们经常结合回归线,探索各个样本点之间的线性关联关系。

seaborn中绘制回归线使用的是sns.regplot()函数:
sns.regplot(x,y,data,x_estimator,x_bins,x_ci=‘ci’,scatter,fit_reg,ci=95,n_boot=1000,units,seed,order=1,logistic,lowess,robust,logx,x_partial,y_partial,truncate,dropna,x_jitter,y_jitter,label,color,marker=‘o’,scatter_kws,line_kws,ax,)

关键常用参数说明:

x, y:必需的参数,用于指定数据集中散点图的x轴和y轴数据。
data:可选参数,用于指定数据集。可以是一个Pandas的DataFrame、Numpy的数组、Python的列表或其他类似的数据结构。
x_estimator:可选参数,用于指定x轴数据的估计方法。默认值为numpy.mean,表示使用均值作为估计方法;可以设置为其他函数,表示使用对应的估计方法。
x_bins:可选参数,用于指定x轴数据的分组数量。默认值为"auto",表示自动确定分组数量;可以设置为一个整数,表示分组数量。
x_ci:可选参数,用于指定x轴数据的置信区间的大小。默认值为None,表示不显示置信区间;可以设置为一个整数,表示置信区间的大小。
scatter:可选参数,用于指定是否绘制散点图。默认值为True,表示绘制散点图;可以设置为False,表示不绘制散点图。
fit_reg:可选参数,用于指定是否绘制回归线。默认值为True,表示绘制回归线;可以设置为False,表示不绘制回归线。
ci:可选参数,用于指定置信区间的大小。默认值为95,表示使用95%的置信区间;可以设置为其他整数值,表示使用对应大小的置信区间。
order:可选参数,用于指定回归模型的阶数。默认值为1,表示使用一次线性回归模型;可以设置为其他整数值,表示使用对应阶数的回归模型。
scatter_kws:可选参数,用于传递给散点图的其他参数,例如散点的颜色、大小等。
line_kws:可选参数,用于传递给回归线的其他参数,例如线的颜色、线宽等。
ax:可选参数,用于指定绘图的坐标轴。如果没有指定,则会创建一个新的坐标轴。
**kwargs:用于传递其他绘图参数,例如图像的标题、标签、颜色等。

案例展示

在这个案例中,我们使用sns.scatterplot()方法绘制直方图,用sns.regplot()方法绘制核密度曲线,用以展示中国平安股票价格与交易额之间的分布关系。

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"的股票
df = df[df['ts_code'] == '000001.SZ']

# 使用scatterplot绘制散点图
sns.scatterplot(data=df, x='close', y='amount')
# 添加线性回归线
sns.regplot(data=df, x='close', y='amount')
# 显示图形
plt.show()

代码运行效果如下图所示:
在这里插入图片描述
我们在观察特征值与特征值之间的联系时,除了最简单的两个特征值之间的分布关系,还有多个特征值之间的关系。为了方便用户统计多个特征值之间的关系,我们可以选择使用sns.pairplot()函数绘制多张图形,进而观察多个变量之间两两关联的分布特性。
sns.pairplot(data,hue,hue_order,palette,vars,x_vars,y_vars,kind=‘scatter’,diag_kind=‘auto’,markers,height=2.5,aspect=1,corner,dropna,plot_kws,diag_kws,grid_kws,size,)
关键常用参数说明:
data:必需的参数,用于指定数据集。可以是一个Pandas的DataFrame、Numpy的数组、Python的列表或其他类似的数据结构。
hue:可选参数,用于指定分类变量的名称。默认值为None,表示不使用分类变量;可以设置为一个分类变量的名称,表示根据该变量进行分类绘制。
hue_order:可选参数,用于指定分类变量的顺序。默认值为None,表示使用分类变量的唯一值的自然顺序;可以设置为一个列表,表示指定的顺序。
palette:可选参数,用于指定颜色调色板的名称。默认值为None,表示使用默认的颜色调色板;可以设置为一个颜色调色板的名称,例如"Set1"、“Dark2"等。
vars:可选参数,用于指定要绘制的变量。默认值为None,表示绘制所有变量;可以设置为一个变量名列表,表示只绘制指定的变量。
diag_kind:可选参数,用于指定对角线上绘制的图形类型。默认值为"auto”,表示根据变量类型自动选择图形类型;可以设置为"hist",表示绘制直方图;可以设置为"kde",表示绘制核密度估计图;可以设置为None,表示不绘制图形。
markers:可选参数,用于指定散点图的标记样式。默认值为None,表示使用默认的标记样式;可以设置为一个标记样式的名称,例如"."、"o"等。
plot_kws:可选参数,用于传递给散点图的其他参数,例如颜色、标签等。
diag_kws:可选参数,用于传递给对角线图形的其他参数,例如颜色、标签等。
grid_kws:可选参数,用于传递给网格线的其他参数,例如颜色、线宽等。

股票价格、交易量与交易额分布关系可视化展示

在这个案例中,我们使用sns.pairplot()方法同时绘制多个图形,用以展示中国平安股票开盘价、收盘价与交易量、交易额之间的分布关系。
添加以下代码:

# 使用pairplot绘制多维散点图
sns.pairplot(data=df[['open','close','vol','amount']])

# 显示图形
plt.show()

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

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

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

相关文章

wazuh部署

文章目录 1.ova文件获取2.VMware导入ova文件3.wazuh目录文件4.wazuh解析原理 1.ova文件获取 访问官网 https://wazuh.com/依次点击红色标注将文件下载到本地 2.VMware导入ova文件 直接打开下载到本地的ova文件 设置导入的位置和名称 初始密码账户为wazuh-user:wazuh …

手写模拟SpringBoot核心流程(一):实现极简一个SpringBoot——模拟SpringBoot启动过程

前言 Spring Boot 是一个开源的框架,用于简化 Spring 应用程序的开发和部署。它建立在 Spring Framework 的基础上,内置了web服务器——tomcat和jetty,使得 Spring 应用的构建变得更加快速、简单和可维护。 本文通过实现一个SpringBoot&…

Global Illumination_Exponential Variance Shadow Maps(EVSM)

最近工程中需要集成高质量阴影(效率、效果),介于项目非循环渲染所以CSM无法使用,但动态建模中还需要快速增删改场景,阴影还必须重新生成,奈何之前简单SMPCF无法满足效率、效果要求,于是调研RVT等…

十、Linux的root用户、用户和用户组的问题

目录 1、Linux的root用户 (1)基础 (2)如何进入root模式 (3)如何给普通用户配置root权限? 注意点: 配置方法: 2、用户/用户组问题 (1)用户/用…

【网络安全必看】如何提升自身 WEB 渗透能力?

前言 web 渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。 理清 web 渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。 程序员之间流行一个词,叫 35 岁危机,&am…

宁德时代与陕汽签署十年战略合作协议,助力商用车电动化进程

据报道,宁德时代新能源科技股份有限公司与陕西汽车控股集团有限公司已经签署了一项为期十年的战略合作协议。双方的合作旨在推动商用车电池技术的发展,并面向商用车全领域应用。 这次战略合作具有重要意义,为宁德时代和陕汽启动了全面合作的序…

iOS开发 - Swift Codable协议实战:快速、简单、高效地完成JSON和Model转换!

前言 Codable 是 Swift 4.0 引入的一种协议,它是一个组合协议,由 Decodable 和 Encodable 两个协议组成。它的作用是将模型对象转换为 JSON 或者是其它的数据格式,也可以反过来将 JSON 数据转换为模型对象。 Encodable 和 Decodable 分别定…

【数据结构】 单链表面试题讲解

文章目录 引言反转单链表题目描述示例:题解思路代码实现: 移除链表元素题目描述:示例思路解析: 链表的中间结点题目描述:示例:思路解析代码实现如下: 链表中倒数第k个结点题目描述示例思路解析&…

OpenFOAM的fvOptions

采用OpenFoam中的fvOptions /*--------------------------------*- C -*----------------------------------*\ |\\ / F ield | OpenFOAM: The Open Source CFD Toolbox\\ / O peration | Website: https://openfoam.org\\ / A n…

CentOS7.6安装mysql8.0.34

一、查看服务器相关信息 cat /etc/redhat-release cat /proc/version [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [rootlocalhost ~]# cat /proc/version Linux version 3.10.0-957.el7.x86_64 (mockbuildkbuilder.bsys.centos.org) …

不用插拔网线鼠标点击自动切换网线和WIFI

因为之前在zf单位工作,政务内网需要插网线,而访问外网又需要连wifi,切换就需要拔掉网线插上网线很麻烦,旁边老哥教我了一手.bat程序自动切换方法, .bat文件代码如下: 以下代码的.bat文件执行后会切换到以太网,同时关闭掉wifi和以太网4 echo off %1 mshta vbscript:CreateObjec…

YOLOX算法调试记录

YOLOX是在YOLOv3基础上改进而来,具有与YOLOv5相媲美的性能,其模型结构如下: 由于博主只是要用YOLOX做对比试验,因此并不需要对模型的结构太过了解。 先前博主调试过YOLOv5,YOLOv7,YOLOv8,相比而言,YOLOX的环…

Linux:shell脚本数组和脚本免交互

目录 一、shell数组的定义 二、定义数组的方式 (1)数组名(value1 value2 value3 value4 ...) (2)获取数组的长度 (3)获取数组下标对应的值 (4)数组的遍历 (5&#x…

Ubuntu20.04安装Nvidia显卡驱动教程

1、禁用nouveau 1、创建文件,如果没有下载vim编辑器,将vim换成gedit即可 $ sudo vim /etc/modprobe.d/blacklist-nouveau.conf 2、在文件中插入以下内容,将nouveau加入黑名单,默认不开启 blacklist nouveau options nouveau m…

Linux学习之基本指令二

-----紧接上文 在了解cat指令之前,我们首先要了解到Linux下一切皆文件,在学习c语言时我们就已经了解到了 对文件输入以及读入的操作(向显示器打印,从键盘读取数据),对于Linux下文件的操作,也是…

make系列之入门

一.欢迎来到我的酒馆 在本章节介绍make工具。 目录 一.欢迎来到我的酒馆二.什么是make三.make与Makefile四.如何写Makefile 二.什么是make 你可能会遇到一些名词:GNU,Linux,make。它们是什么,又有什么样的联系? …

mongodb.使用自带命令工具导出导入数据

在一次数据更新中,同事把老数据进行了清空操作,但是新的逻辑数据由于某种原因(好像是她的电脑中病毒了),一直无法正常连接数据库进行数据插入,然后下午2点左右要给甲方演示,所以要紧急恢复本地的…

【图论】Floyd算法

一.简介 Floyd算法,也称为Floyd-Warshall算法,是一种用于解决所有节点对最短路径问题的动态规划算法。它可以在有向图或带权图中找到任意两个节点之间的最短路径。 Floyd算法的基本思想是通过中间节点逐步优化路径长度。它使用一个二维数组来存储任意两…

挖漏洞竟能赚取百万美金?来认识一下这 6 位百万美元白帽黑客

在黑客世界,有三种人:白帽(黑客)、灰帽(黑客)和黑帽(黑客)。其中,白帽黑客,即 White Hat Hacker,又称白帽子,它们用自己的黑客技术来维…

redux的介绍、安装、三大核心与执行流程

redux的介绍、安装、三大核心与执行流程 一、redux的基本介绍二、redux的安装三、redux核心概念3.1 action3.2 reducer3.3 store 四、Redux代码执行流程五、加减案例练习 一、redux的基本介绍 redux中文官网Redux 是 React 中最常用的状态管理工具(状态容器&#x…