量化交易可视化(10)-等高线图

news/2024/10/20 13:44:39/

等高线图的含义

等高线图(Contour plot)是一种二维图形展示方式,用于表示函数在二维平面上的等高线。等高线图的每条等高线代表函数在该高度上的取值相同的点的集合。

等高线图的绘制方法

在matplotlib中,可以使用contour()函数绘制等高线图。

参数解释:

X:二维数组,表示 x 坐标的网格点。

Y:二维数组,表示 y 坐标的网格点。

Z:二维数组,表示函数在对应网格点的取值。

levels:可选参数,表示要绘制的等高线的高度值。默认为 None,表示自动生成等高线。

kwargs:其他可选参数,用于设置等高线的样式和属性。
以下是一些常用的
kwargs参数:

colors:设置等高线的颜色。可以是单个颜色字符串,也可以是颜色字符串列表。默认为 None,表示使用默认颜色。

cmap:设置等高线的颜色映射。可以是 matplotlib 的 colormap 对象或 colormap 名称。默认为 None,表示使用默认颜色映射。

linewidths:设置等高线的线宽。可以是单个线宽值,也可以是线宽值列表。默认为 None,表示使用默认线宽。

alpha:设置等高线的透明度。取值范围为 0 到 1,默认为 1,表示完全不透明。

linestyles:设置等高线的线型。可以是单个线型字符串,也可以是线型字符串列表。默认为 None,表示使用默认线型。

extend:设置颜色映射的扩展。可以是 ‘neither’、‘both’、‘min’ 或 ‘max’。默认为 ‘neither’,表示不扩展颜色映射。

locator:设置等高线标签的位置定位器。可以是 matplotlib.ticker.Locator 对象,也可以是 locator 名称字符串。默认为 None,表示使用默认定位器。

等高线图在量化交易中的应用

在下面的案例中,使用等高线图绘制中国平安2023年3月的开盘价、收盘价、最高价、最低价的等高线图。

import numpy as np
import pandas as pd
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)# 筛选2023年3月的行情数据
start_date = '2023-03-01'
end_date = '2023-03-31'
df = df.loc[start_date:end_date]# 筛选中国平安的3月股票交易数据
stock = df[df['ts_code']=='000001.SZ']# 生成一个列表,再转置成4*23矩阵(开盘价、收盘价、最高价、最低价四列,23个交易日)
price_data = []
price_data.append(stock['open'].tolist())
price_data.append(stock['close'].tolist())
price_data.append(stock['high'].tolist())
price_data.append(stock['low'].tolist())
price_data = np.array(price_data)# 生成坐标
x = np.arange(1, 24)  # 日期
y = np.arange(4)  # 价格类型
X, Y = np.meshgrid(x, y)# 设置图形大小
plt.figure(figsize=(10, 10))  
# 绘制等高线图
plt.contourf(X, Y, price_data, cmap='coolwarm') 
# 添加颜色条
plt.colorbar() 
# 设置x轴刻度
x_labels = [str(i)[6:10] for i in stock.index]
plt.xticks(x, x_labels)  
# 设置y轴刻度
plt.yticks(y, ['High', 'Low', 'Open', 'Close'])  
# 设置x轴标签
plt.xlabel('Date') 
# 设置y轴标签
plt.ylabel('Price Type')  
# 设置图标题
plt.title('Stock Price Fluctuation')  
# 显示图形
plt.show()  

最终效果图如下:
在这里插入图片描述
从上图中我们可以发现,3月份平安银行的日均线都比较高,但是从3月9日之后,日均价格一直下探,所以在此期间不宜购入股票。


http://www.ppmy.cn/news/1026043.html

相关文章

记一次前端直接上传图片到oss报错

前端直接上传图片到阿里云oss,相关过程官网和网上资料已经很详细,不做赘述。 但这个过程比较复杂,前后端对接过程中很容易出现报错,这里遇到了以下报错,不容易排查。 请求显示net::ERR_NAME_NOT_RESOLVED错误,catch输…

闲鱼卖货:新手容易踩坑的7个地方。赶紧看看有没有中招?

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 这是我以前的一个学生收到的第一个非法通知。他告诉我,他当时很害怕,…

阿里云预装LAMP应用导致MySQL不显示访问密码如何解决

😀前言 本篇博文是关于阿里云云服务器ECS部署MySQL过程中出现的一下坑,希望能够帮助到您😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家…

饥荒开服教程——游戏

饥荒开服教程——游戏 1. 开服环境2. 开服步骤2.1 创建集群2.2 安装服务端2.3 上传mod2.4 启动脚本2.5 上传地图2.6 设置访问令牌2.7 修改配置 3. 服务器命令3.1 关闭服务器3.2 回档 记录一些在饥荒联机版开服中遇到过的问题。 参考:3分钟创建你的饥荒联机专属服务…

VLE基于预训练文本和图像编码器的图像-文本多模态理解模型:支持视觉问答、图文匹配、图片分类、常识推理等

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

web后端解决跨域问题

目录 什么是跨域问题 为什么限制访问 解决 什么是跨域问题 域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。但是一般情况下不能这么做,它是由浏览器的同源策略造成的,是浏览器对js施加的安全…

c++ 子数组动态规划问题

1.最大子数组和 力扣 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,-5…

第三天课程上午

1.Vue生命周期和生命周期的四个阶段 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&…