Python可视化在量化交易中的应用(11)_Seaborn折线图

举个栗子,用seaborn绘制折线图。

Seaborn中折线图的绘制方法

在seaborn中,我们一般使用sns作为seaborn模块的别名,因此,在下文中,均以sns指代seaborn模块。
seaborn中绘制折线图使用的是sns.lineplot()函数:
sns.lineplot(x,y,hue,size,style,data,palette,hue_order,hue_norm,sizes,size_order,size_norm,dashes=True,markers,style_order,units,estimator=‘mean’,ci=95,n_boot=1000,seed,sort=True,err_style=‘band’,err_kws,legend=‘auto’,ax,**kwargs,)

关键常用参数说明:

x:指定折线图的x轴数据,可以是一维数组、序列或DataFrame的列名。
y:指定折线图的y轴数据,可以是一维数组、序列或DataFrame的列名。
hue:根据指定的分类变量对数据进行分组,并在图上使用不同颜色的折线表示不同的组。
size:根据指定的分类变量对数据进行分组,并在图上使用不同的线条粗细表示不同的组。
style:用于指定线条的样式,默认为None,即自动选择。其可选项为:1,‘auto’:自动选择线条样式,默认情况下会选择不同的样式来区分不同的数据系列;2,‘darkgrid’:使用深色背景和网格线的样式;3,‘whitegrid’:使用浅色背景和网格线的样式;4,‘dark’:使用深色背景的样式,没有网格线;5,‘white’:使用浅色背景的样式,没有网格线;6,‘ticks’:使用坐标轴刻度线的样式,没有背景和网格线。
data:指定要绘制折线图的数据集,可以是DataFrame或长格式的数据。
palette:设置颜色调色板,用于hue的不同分类变量对应的颜色。
markers:设置数据点的标记样式。
estimator:设置用于计算折线图上每个点估计值的函数,默认为平均数。
ci:设置误差线的置信区间,默认为95。

使用Seaborn绘制折线图的应用案例

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
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)# 筛选2023年3月的行情数据
start_date = '2023-01-03'
end_date = '2023-03-31'
df = df.loc[start_date:end_date]# 分别筛选出股票代码分别是"000001.SZ"和"000002.SZ"的两只股票
df = df[df["ts_code"].isin(("000001.SZ","000002.SZ"))]# 给股票代码加上股票名称
def get_name(ts_code):if ts_code == "000001.SZ":return "Bank of PingAn"if ts_code == "000002.SZ":return "WanKe A"
df["name"] = [get_name(i) for i in df["ts_code"]]# 计算每只股票交易日当天的开盘价和收盘价之间的平均价格
df["avg_price"] = (df["open"] + df["close"])/2# 只保留name和avg_price两列
df = df[['name','avg_price']]# 设置图形样式
sns.set(style="whitegrid")
# 创建画布和子图
fig, ax = plt.subplots(figsize=(10, 6))
# 绘制折线图,按名称进行分组
sns.lineplot(x='trade_date', y='avg_price', hue='name', data=df, ax=ax)
# 设置标题和标签
ax.set_title('Stock Price Lineplot')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
# 显示图形
plt.show()

最终效果图如下:
在这里插入图片描述

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

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

相关文章

springboot+grpc+k8s+istio环境

2023年8月17日,本人之前使用过nacosdubbospringboot、eurekafeign等环境。最近学习到了istio服务网格集成到k8s也可以实现分布式微服务。 1. 环境 Kubernetes集群istio集成到k8sjdk17 (8也ok)gPRC服务间通信 2. 微服务 cloud-config服务是spring-cloud-config-s…

中国剩余定理及扩展

目录 中国剩余定理解释 中国剩余定理扩展——求解模数不互质情况下的线性方程组: 代码实现: 互质: 非互质: 中国剩余定理解释 在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二&#x…

【C++】做一个飞机空战小游戏(十)——子弹击落炮弹、炮弹与飞机相撞

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

leetcode做题笔记88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组…

Mybatis的SqlSource SqlNode BoundSql

学习链接 MyBatis SqlSource解析 【Mybatis】Mybatis源码之SqlSource#getBoundSql获取预编译SQL Mybatis中SqlSource解析流程详解 Mybatis TypeHandler解析 图解 Mybatis的SqlSource&SqlNode - processon DynamicSqlSource public class DynamicSqlSource implement…

notepad++ verilog关键字自动补全

新建verilog.xml放在安装目录下 D:\Program Files (x86)\Notepad\autoCompletion <?xml version"1.0" encoding"Windows-1252" ?> <NotepadPlus><AutoComplete><KeyWord name"accept_on" /><KeyWord name"a…

mysql自定义实体类框架

根据表结构自动生产实体类和方法,根据反射与io生成,可自定义扩展方法 package com.digital.web.front; /*** pom依赖* <dependency>* <groupId>mysql</groupId>* <artifactId>mysql-connector-java</artifactId>* <version>5.1.27</ve…

设计模式详解-责任链模式

类型&#xff1a;行为型模式 实现原理&#xff1a;为请求创建了一个接收者对象的链。对请求的发送者和接收者进行解耦&#xff0c;每个接收者都包含对另一个接收者的引用&#xff0c;如果一个对象不能处理该请求&#xff0c;那么它会把相同的请求传给下一个接收者&#xff0c;…

极致鸿蒙2.0——华为MatePad系列安装AidLux,一个自带vscode的Python编译环境

看着刚刚人入手的华为鸿蒙系统MatePad11平板&#xff0c;是如此的美轮美奂&#xff0c;但是总感觉少了点什么&#xff0c;少了点什么呢&#xff1f;是编程环境&#xff0c;我爱MatePad&#xff0c;也爱编程&#xff0c;那如果可以在MatePad上编程&#xff0c;会发生什么&#x…

SpringBoot、Java 使用 Jsoup 解析 HTML 页面

使用 Jsoup 解析 HTML 页面 什么是 Jsoup&#xff1f; Jsoup 是一个用于处理 HTML 页面的 Java 库&#xff0c;它提供了简单的 API&#xff0c;使得从 HTML 中提取数据变得非常容易。无论是获取特定标签的内容还是遍历整个页面的元素&#xff0c;Jsoup 都能轻松胜任。 如何使…

【ARM Linux 系统稳定性分析入门及渐进12 -- GDB内存查看命令 “x“(examine)】

文章目录 gdb 内存查看命令 examine 上篇文章&#xff1a;ARM Linux 系统稳定性分析入门及渐进11 – GDB( print 和 p 的使用| 和 &#xff1a;&#xff1a;的使用|ptype|{&#xff1c;type&#xff1e;} &#xff1c;addr&#xff1e; ) gdb 内存查看命令 examine examine是…

c语言——判断,判断是否是字母

//判断&#xff0c;判断是否是字母 #include<stdio.h> #include<stdlib.h> int main() {char c;printf("输入字符&#xff1a;");scanf("%c",&c);if((c>a&&c<z)||(c>A&&c<Z)) //a~z的ASCLL区间是97-122&…

【每日一题Day299】LC2235两整数相加

两整数相加【LC2235】 给你两个整数 num1 和 num2&#xff0c;返回这两个整数的和。 实现 class Solution {public int sum(int num1, int num2) {return num1 num2;} }复杂度 时间复杂度&#xff1a; O ( 1 ) \mathcal{O}(1) O(1)空间复杂度&#xff1a; O ( 1 ) \mathcal{O}…

Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)

文章目录 Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)前情提要客户端部分 Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三) 前情提要 单例泛型类 using System.Collections; using System.Collections.Generic; …

【C# 基础精讲】自定义异常类

自定义异常类是C#中异常处理的一种重要方式&#xff0c;它允许您创建具有自定义错误信息和处理逻辑的异常类型&#xff0c;以提高程序的可读性和可维护性。通过自定义异常类&#xff0c;您可以为特定的业务逻辑或应用场景创建更有意义的异常&#xff0c;使错误处理更加精确和有…

【Go 基础篇】Go语言关键字和预定义标识符解析:探索编程的基石与核心要素

介绍 在计算机编程中&#xff0c;关键字&#xff08;Keywords&#xff09;和预定义标识符&#xff08;Predefined Identifiers&#xff09;是编程语言的核心要素&#xff0c;它们在语法结构和语言功能中起到重要作用。在Go语言&#xff08;Golang&#xff09;中&#xff0c;关…

虚拟拍摄,如何用stable diffusion制作自己的形象照?

最近收到了某活动的嘉宾邀请&#xff0c;我将分享&#xff1a; 主题&#xff1a;生成式人工智能的创新实践 简要描述&#xff1a;从品牌营销、智能体、数字内容创作、下一代社区范式等方面&#xff0c;分享LLM与图像等生成式模型的落地应用与实践经验。 领域/研究方向&#xff…

1.flink快速入门

前言 下图表示的是一个简单的flink-job的计算图&#xff0c;这种图被称为DAG(有向无环图)&#xff0c;表示的这个任务的计算逻辑&#xff0c;无论是spark、hive、还是flink都会把用户的计算逻辑转换为这样的DAG&#xff0c;数据的计算按照DAG触发&#xff0c;理论上只要构建出…

[oneAPI] 使用字符级 RNN 生成名称

[oneAPI] 使用字符级 RNN 生成名称 oneAPI特殊写法使用字符级 RNN 生成名称Intel Optimization for PyTorch数据下载加载数据并对数据进行处理创建网络训练过程准备训练训练网络 结果 参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517…

3:Ubuntu上配置QT交叉编译环境并编译QT程序到Jetson Orin Nano(ARM)

1.Ubuntu Qt 配置交叉编译环境 1.1 ubuntu 20.04安装Qt sudo apt-get install qtcreator 1.2 配置QT GCC配置同上 最后配置Kits 上面设置完成之后 &#xff0c;设置Kits 中的Device(这是为了能够直接把项目部署到arm设备上) 点击NEXT之后会出现连接被拒绝&#xff0c;不用担…