pyecharts可视化作图1:基金净值-折线图

news2025/1/21 5:49:19

   近期,接触到pyecharts模块,感觉其在可视化作图上比较强大,虽然无法和前端页面相比,但对于基础的数据展示,可以轻松处理。

   本期主要以基金净值走势为案例,绘制相应的折线图,由于该模块较为简单,多练即可上手,因此只在代码中做一些基础的备注。

1. 源代码

  基本流程如下:

1. 导入作图所需数据。

2. 选择作图类型,传入所需的一些自由参数。

3. 导入数据,作出基本的图形。

4. 添加标题和控件,优化图形效果。

from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.globals import ThemeType
import pandas as pd

# 基础数据--虚拟
nav_dict = {'日期': {0: '2023-08-01', 1: '2023-08-02', 2: '2023-08-03', 3: '2023-08-04', 4: '2023-08-07',
                   5: '2023-08-08', 6: '2023-08-09', 7: '2023-08-10', 8: '2023-08-11', 9: '2023-08-14',
                   10: '2023-08-15', 11: '2023-08-16', 12: '2023-08-17', 13: '2023-08-18',
                   14: '2023-08-21', 15: '2023-08-22', 16: '2023-08-23',
                   17: '2023-08-24', 18: '2023-08-25', 19: '2023-08-28'},
            '基金': {0: 1.0, 1: 1.0, 2: 0.9967, 3: 0.9989, 4: 0.9967, 5: 1.0,
                   6: 1.0022, 7: 0.9967, 8: 0.99, 9: 0.9922, 10: 0.9877, 11:
                       0.9788, 12: 0.9967, 13: 0.9933, 14: 0.9811, 15: 0.9911,
                   16: 0.9755, 17: 0.98, 18: 0.9744, 19: 0.9777},
            '基准': {0: 1.0, 1: 0.993, 2: 1.0017, 3: 1.0056, 4: 0.998,
                   5: 0.9954, 6: 0.9924, 7: 0.9944, 8: 0.9715, 9: 0.9645,
                   10: 0.9621, 11: 0.9551, 12: 0.9583, 13: 0.9465,
                   14: 0.9329, 15: 0.94, 16: 0.9246, 17: 0.9313, 18: 0.9278, 19: 0.9386}}
# 数据转换为DataFrame
nav_data = pd.DataFrame(nav_dict)


def set_y_axis(data):
    # 设置y轴的坐标,输入序列值
    y_max, y_min = data.max() * 1.08, data.min() * 0.92
    return round(y_max, 4), round(y_min, 4)


# 设置图的形式,并设置背景风格和大小
# line-折线图,opts.InitOpts-传入参数
# theme-风格,width-宽度,height-高度
line = Line(init_opts=opts.InitOpts(theme=ThemeType.LIGHT, width="1200px", height="500px"))
# 添加x轴数据
line.add_xaxis(nav_data['日期'].tolist())
# 添加y轴数据和标签,同时标记净值的最大值和最小值,均值
# markpoint_opts--标记点
# markline_opts--标记线
# is_symbol_show是否展示数据标签,False为不显示
line.add_yaxis('基金', nav_data['基金'].tolist(),
               is_symbol_show=True,
               markpoint_opts=opts.MarkPointOpts(
                   data=[opts.MarkPointItem(type_="min", name="最小值"),
                         opts.MarkPointItem(type_="max", name="最大值")]),
               markline_opts=opts.MarkLineOpts(
                   data=[opts.MarkLineItem(type_="average", name="平均值")],
               ),
               )
line.add_yaxis('基准', nav_data['基准'].tolist(), is_symbol_show=True)

# 设置标题和副标题并条件x轴的坐标可移动控件,设置y轴的间隔
# datazoom_opts-坐标轴控件,不传参默认X轴
# yaxis_opts-y轴设置最大值,最小值和间距

y_max, y_min = set_y_axis(nav_data['基金'])
line.set_global_opts(title_opts=opts.TitleOpts(title="净值走势图", subtitle="数据为虚拟数据"),
                     datazoom_opts=[opts.DataZoomOpts()],
                     yaxis_opts=opts.AxisOpts(max_=y_max, min_=y_min, interval=0.02)
 )
# 数据保存为html
line.render("净值折线图.html")

2. 效果展示

     最终的结果可在网页上展示,横轴可以调整时间区间。

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

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

相关文章

多用户商城系统支付模块 用户支付的钱到哪里去了

多用户商城系统是类似京东天猫的电商平台,用户一般使用微信或者支付宝支付,在购买商品或服务支付后,商家发货或提供服务后,平台需要将钱结算给提供商品或者服务的商户。 这时会涉及平台和商户的结算问题,一般有两种解决…

【Qt开发流程】之对象模型3:对象树及其所有权

描述 Qt对象树是一种基于父子关系的对象管理机制,用于管理Qt应用程序中的所有对象。在Qt中,每个对象都可以拥有一个或多个子对象,并且每个子对象只能属于一个父对象。每个对象的所有权(也称为生存期)由其父对象控制。…

LangChain学习一:模型-实战

文章目录 上一节内容学习目标:模型(models)学习内容一:模型分类学习内容二:不同模型实战3.1 Chat-聊天模型3.1.1 声明3.1.2 Chat-聊天类型实战3.1.2.1 AIMessage(AI 消息)3.1.2.2 HumanMessage&…

力扣46. 全排列(java 回溯法)

Problem: 46. 全排列 文章目录 题目描述思路解题方法复杂度Code 题目描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 思路 1.该题目要求求出一个数组的全排列,我们可以利用回溯模拟出一个对数组中所有…

9_企业架构队列缓存中间件分布式Redis

企业架构队列缓存中间件分布式Redis 学习目标和内容 1、能够描述Redis作用及其业务适用场景 2、能够安装配置启动Redis 3、能够使用命令行客户端简单操作Redis 4、能够实现操作基本数据类型 5、能够理解描述Redis数据持久化机制 6、能够操作安装php的Redis扩展 7、能够操作实现…

maven生命周期回顾

目录 文章目录 **目录**两种最常用打包方法:生命周期: 两种最常用打包方法: 1.先 clean,然后 package2.先 clean,然后install 生命周期: 根据maven生命周期,当你执行mvn install时&#xff0c…

JAVA IO:NIO

1.阻塞 IO 模型 ​ 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当…

Unity 简单打包脚本

打包脚本 这个打包脚本适用于做demo,脚本放在Editor目录下 using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine;public class BuildAB {[MenuItem("Tools/递归遍历文件夹下…

构建第一个事件驱动型 Serverless 应用

我相信,我们从不缺精彩的应用创意,我们缺少的把这些想法变成现实的时间和付出。 我认为,无服务器技术真的有助于最大限度节省应用开发和部署的时间,并且无服务器技术用可控的成本,实现了我的那些有趣的想法。 在我 2…

kali学习

目录 黑客法则: 一:页面使用基础 二:msf和Windows永恒之蓝漏洞 kali最强渗透工具——metasploit 介绍 使用永恒之蓝进行攻击 ​编辑 使用kali渗透工具生成远程控制木马 渗透测试——信息收集 域名信息收集 黑客法则: 一&…

Java架构师系统架构设计原则应用

目录 1 导语2 如何设计高并发系统:局部并发原则3 如何设计高并发系统:服务化与拆分4 高可用系统有哪些设计原则?5 如何保持简单轻量的架构-DRY、KISS,YAGNI原则6 如何设计组件间的交互和行为-HCLC,CQS,SOC7 框架层面的发展趋势-约定大于配置想学习架构师构建流程请跳转:…

有源滤波器在矿区配电网中的应用

针对目前有源滤波器应用于矿区谐波治理时电网频率适应能力较低的问题,针对定采样点数字控制系统提出了一种具有频率自适应能力的谐振控制策略。该策略不仅可以实现对电网频率波动的自适应,提高滤波器补偿效果,而且不需要在线对控制器参数进行…

ansible常用模块介绍

ansible运行模块的两种方式 Ad - Hoc 利用 ansible 命令直接完成管理 , 主要用于临时命令使用场景 ansible westos -m shell -a ls /mnt playbook ansible 脚本 , 主要用于大型项目场景 , 需要前期的规划 vim test.yml - hosts: all task…

【Docker】从零开始:13.Docker安装tomcat

Docker】从零开始:13.Docker安装Tomcat 下载Tomcat镜像启动Tomcat镜像新版本Tomcat修改访问Tomact首页 下载Tomcat镜像 [rootdocker ~]# docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 0e29546d541c: Pull complete 9b829c7…

IDEA加载阿里Java规范插件

IDEA加载阿里巴巴Java开发手册插件,在写代码的时候会自动扫描代码规范。 1、打开Settings 2、打开Plugins 3、搜索Alibaba Java Code Guidelines(XenoAmess TPM)插件,点击Install进行安装,然后重启IDE生效。 4、鼠标右…

Zabbix 5.0 安装部署

一、系统准备工作: Linux : centos 7 mini zabbix-server版本 5.0 LTS 二、安装配置步骤 系统更新 yum update -y 关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 #临时 sed -i s/SELINUXenforcing/SELINU…

User: zhangflink is not allowed to impersonate zhangflink

使用hive2连接进行添加数据是报错: [08S01][1] Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. User: zhangflink is not allowed to impersonate zhangflink 有些文章说需要修…

烟感监控:这个技巧是真的香,后悔没早点知道!

在现代社会,安全意识的提升成为各行各业关注的焦点之一。特别是在建筑、工业和住宅领域,火灾作为一种突发性、破坏性极强的灾害,给人们的生命和财产安全带来了巨大的威胁。 因此,为了有效预防和应对火灾,烟感监控系统逐…

【Angular开发】Angular中的高级组件

在这个博客中,我将解释Angular中的几个高级组件和机制,它们增强了灵活性、可重用性和性能。 通过熟悉这些高级组件和机制,您可以提高您的Angular开发技能,并在应用程序中利用灵活性、可重用性和性能优化的能力。让我们开始吧&…

iOS ------ 调用高德地图SDK

一,导入第三方库 这里使用CocoaPods安装SDK,方法和前面导入第三方库相同 1.打开终端,cd 文件路径 进入到所创建的项目文件中 2.输入pod init为该项目创建Podfile文件 3.编辑 Podfile 文件 Podfile文件内容如下: platform :ios,…