Python绘制动态股价曲线图并保存视频

news2024/10/6 19:14:57

用akshare库获取英伟达(股票代码:105.NVDA) 在2014年6月19日到2024年6月19日期间的股票的收盘价数据(用后复权的收盘价);

基于后复权的收盘价数据,做一个动态股价曲线图,逐日显示英伟达股价的动态变化情况, 以mp4视频文件输出,保存到文件夹:E:\aivideo;

在大模型中使用如下提示词:

你是一个Python编程专家,要完成一个编写Python脚本的任务,具体步骤如下:

用akshare库获取英伟达(股票代码:105.NVDA) 在2014年6月19日到2024年6月19日期间的股票的收盘价数据(用后复权的收盘价);

基于后复权的收盘价数据,做一个动态股价曲线图,逐日显示英伟达股价的动态变化情况, 以mp4视频文件输出,保存到文件夹:E:\aivideo;

注意:

每一步都要输出信息到屏幕上

日期格式是YYYYMMDD

设置matplotlib默认字体为'SimHei',文件路径为:C:\Windows\Fonts\simhei.ttf

mp4视频的分辨率1080p,码率10Mbps以内,视频时长控制在5分钟以内,格式为MP4格式;

stock_data['日期'] 列的数据类型是字符串,而不是日期时间类型。我们需要先将这一列转换为日期时间类型,然后再进行操作

历史行情数据-东财

接口: stock_us_hist

目标地址: https://quote.eastmoney.com/us/ENTX.html#fullScreenChart

描述: 东方财富网-行情-美股-每日行情

限量: 单次返回指定上市公司的指定 adjust 后的所有历史行情数据

输入参数

名称类型描述

symbolstr美股代码, 可以通过 ak.stock_us_spot_em() 函数返回所有的 pandas.DataFrame 里面的 代码 字段获取

periodstrperiod='daily'; choice of {'daily', 'weekly', 'monthly'}

start_datestrstart_date="20210101"

end_datestrend_date="20210601"

adjuststr默认 adjust="", 则返回未复权的数据; adjust="qfq" 则返回前复权的数据, adjust="hfq" 则返回后复权的数据

输出参数

名称类型描述

日期object-

开盘float64注意单位: 美元

收盘float64注意单位: 美元

最高float64注意单位: 美元

最低float64注意单位: 美元

成交量int32注意单位: 股

成交额float64注意单位: 美元

振幅float64注意单位: %

涨跌幅float64注意单位: %

涨跌额float64注意单位: 美元

换手率float64注意单位: %

接口示例

import akshare as ak

stock_us_hist_df = ak.stock_us_hist(symbol='106.TTE', period="daily", start_date="20200101", end_date="20240214", adjust="qfq")

print(stock_us_hist_df)

根据大模型给出的代码,排除错误后结果如下:

import akshare as ak
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
import os
from matplotlib.animation import FuncAnimation, FFMpegWriter
import matplotlib
matplotlib.rcParams['animation.ffmpeg_path'] = r'D:\Shotcut\ffmpeg.exe'
# 设置matplotlib默认字体为'SimHei'
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 获取英伟达股票数据
def get_stock_data():
    print("正在获取英伟达股票数据...")
    stock_data = ak.stock_us_hist(symbol='105.NVDA', period="daily", start_date="20140619", end_date="20240619", adjust="hfq")
    print("数据获取完成。")
    return stock_data

# 转换日期格式
def convert_date_format(stock_data):
    print("正在转换日期格式...")
    stock_data['日期'] = pd.to_datetime(stock_data['日期'], format='%Y-%m-%d')
    print("日期格式转换完成。")
    return stock_data

# 创建动态股价曲线图
def create_animation(stock_data):
    print("正在创建动态股价曲线图...")
    fig, ax = plt.subplots(figsize=(19.2, 10.8))
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
    ax.xaxis.set_major_locator(mdates.YearLocator())
    line, = ax.plot([], [], lw=2)

    def init():
        ax.set_xlim(stock_data['日期'].iloc[0], stock_data['日期'].iloc[-1])
        ax.set_ylim(stock_data['收盘'].min(), stock_data['收盘'].max())
        return line,

    def update(frame):
        line.set_data(stock_data['日期'].iloc[:frame], stock_data['收盘'].iloc[:frame])
        ax.relim()
        ax.autoscale_view()
        return line,

    ani = FuncAnimation(fig, update, frames=len(stock_data), init_func=init, blit=True)
    print("动态股价曲线图创建完成。")
    return ani

# 保存视频
def save_video(ani):
    print("正在保存视频...")
    if not os.path.exists(r'E:\aivideo'):
        os.makedirs(r'E:\aivideo')
    writer = FFMpegWriter(fps=30, metadata=dict(artist='Me'), bitrate=10000)
    ani.save(r'E:\aivideo\nvidia_stock_price.mp4', writer=writer)
    print("视频保存完成。")

# 主函数
def main():
    stock_data = get_stock_data()
    stock_data = convert_date_format(stock_data)
    ani = create_animation(stock_data)
    save_video(ani)

if __name__ == "__main__":
    main()

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

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

相关文章

Python28-7.1 降维算法之PCA主成分分析

降维算法是一类数据处理技术,主要用于将高维数据映射到低维空间中,从而减少数据的维度。降维不仅可以减少计算复杂度,提高算法性能,还可以帮助数据可视化。常见的降维算法包括主成分分析(PCA)、线性判别分析…

DP:背包问题----0/1背包问题

文章目录 💗背包问题💛背包问题的变体🧡0/1 背包问题的数学定义💚解决背包问题的方法💙例子 💗解决背包问题的一般步骤?💗例题💗总结 ❤️❤️❤️❤️❤️博客主页&…

力扣Hot100-19删除链表的倒数第n个节点(双指针)

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3:…

UCOS-III 任务调度与就绪列表管理

01. 就绪优先级位图 在实时操作系统中,任务调度的效率至关重要。UCOS-III通过就绪优先级位图来快速查找最高优先级的就绪任务,从而实现高效调度。就绪优先级位图是一个按位表示的结构,每个位代表一个优先级,当某个优先级上有任务就…

本地Windows电脑 连接 Windows 服务器

Windows电脑 连接 Windows 服务器 方式1:直接搜索 在电脑的搜索栏,输入“远程桌面连接” 可以选择点击 “打开” 或者直接按 回车键 “Enter”,打开 远程桌面连接 方式2:运行框打开服务器连接 同时按:Windows徽标键…

分布式数据库HBase:从零开始了解列式存储

在接触过大量的传统关系型数据库后你可能会有一些新的问题: 无法整理成表格的海量数据该如何储存? 在数据非常稀疏的情况下也必须将数据存储成关系型数据库吗? 除了关系型数据库我们是否还有别的选择以应对Web2.0时代的海量数据? 如果你也曾经想到过这些问题, 那么HBase将是…

CTF之unseping

拿到题目看不懂&#xff1f;这是难度1&#xff1f;含泪去看大佬的wp&#xff0c;写下我的自传&#xff01; <?php highlig…

常微分方程算法之编程示例十-两点狄利克雷边值问题(理查德森外推法)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 本节我们采用理查德森法对示例八中的两点狄利克雷边值问题进行外推求解,相应的原理及推导思路请参考: 常微分方程算法之高精度算法(Richardson法+紧差分法)_richardson外推法-CSDN博客https://blog.csdn.net/…

【SVN的使用-源代码管理工具-SVN介绍-服务器的搭建 Objective-C语言】

一、首先,我们来介绍一下源代码管理工具 1.源代码管理工具的起源 为什么会出现源代码管理工具,是为了解决源代码开发的过程中出现的很多问题: 1)无法后悔:把项目关了,无法Command + Z后悔, 2)版本备份:非空间、费时间、写的名称最后自己都忘了干什么的了, 3)版本…

【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow

一、介绍 服装识别系统&#xff0c;本系统作为图像识别方面的一个典型应用&#xff0c;使用Python作为主要编程语言&#xff0c;并通过TensorFlow搭建ResNet50卷积神经算法网络模型&#xff0c;通过对18种不同的服装&#xff08;‘黑色连衣裙’, ‘黑色衬衫’, ‘黑色鞋子’, …

Linux多进程和多线程(五)进程间通信-消息队列

多进程(五) 进程间通信 消息队列 ftok()函数创建消息队列 创建消息队列示例 msgctl 函数示例:在上⼀个示例的基础上&#xff0c;加上删除队列的代码 发送消息 示例: 接收消息示例 多进程(五) 进程间通信 消息队列 消息队列是一种进程间通信机制&#xff0c;它允许两个或多个…

终身免费的Navicat数据库,不需要破解,官方支持

终身免费的Navicat数据库&#xff0c;不需要破解&#xff0c;官方支持 卸载了Navicat&#xff0c;很不爽上干货&#xff0c;Navicat免费版下载地址 卸载了Navicat&#xff0c;很不爽 公司不让用那些破解的数据库软件&#xff0c;之前一直使用Navicat。换了几款其他的数据库试了…

大数据开发如何快速进阶

目录 1. 个人经验与心得分享1.1 试错的价值与机会把握1.2 投入产出比的考量1.3 刻意练习与技能提升1.4 目标设定与职业规划1.5 自我驱动与成长1.6 第一性原理的应用 2. 大数据开发领域的挑战与机遇2.1 技术革新的挑战2.2 数据治理的难题2.3 人才短缺的问题2.4 投入产出比的考量…

电子部件烧录流程(仅供参考)

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 部件烧录流程的详细步骤 1. 准备工作 2. 连接硬件 3. 配置烧录软件 4. 校验和设置 5. 开始烧录 6. 验证和测试 7. 断开…

Docker实现Redis主从,以及哨兵机制

Docker实现Redis主从,以及哨兵机制 目录 Docker实现Redis主从,以及哨兵机制准备Redis镜像创建Redis主节点配置文件启动Redis从节点确认主从连接哨兵主要功能配置哨兵文件创建Redis哨兵的Docker容器 要通过Docker实现Redis的主从&#xff08;master-slave&#xff09;复制&#…

亚太万人eVTOL展!2024深圳eVTOL将于9月登陆鹏城

2024年以来&#xff0c;北京、上海等十多个省市&#xff0c;先后发布了鼓励低空经济发展的行动方案&#xff0c;其中&#xff0c;eVTOL&#xff08;电动垂直起降航空器&#xff09;成为低空经济最火热的细分赛道。2023年&#xff0c;中国eVTOL产业规模达9.8亿元&#xff0c;同比…

Cloud Kernel SIG 双月动态:ANCK 发布 4.19 6.6 新版本,存储、内存、调度等新特性支持

Cloud Kernel SIG&#xff08;Special Interest Group&#xff09;&#xff1a;支撑龙蜥内核版本的研发、发布和服务&#xff0c;提供生产可用的高性价比内核产品。 本月度动态综合汇总了 5 月和 4 月双月项目动态&#xff1a; 01 SIG 整体进展 5 月 1. ANCK-6.6 release 6…

基于RAG(检索增强生成)实现一套企业智能客服系统

大型语言模型&#xff08;LLM&#xff09;相较于传统的语言模型具有更强大的能力&#xff0c;然而在某些情况下&#xff0c;它们仍可能无法提供准确的答案。为了解决大型语言模型在生成文本时面临的一系列挑战&#xff0c;提高模型的性能和输出质量&#xff0c;研究人员提出了一…

软件测试面试必杀篇:【2024软件测试面试八股文宝典】

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、App测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

ssm三农产品助推网站-计算机毕业设计源码91990

目录 摘要 1 绪论 1.1选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2网站分析 2.1 可行性分析 2.2 网站流程分析 2.2.1 数据流程 2.2.2 业务流程 2.3 网站功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 网站用例分析 2.5本章小结 3 网站总体设…