N185_按时间轴轮播 涨跌图 分析收支.html

%%time
# pyecharts绘制时间轮播折线图
#导入模块,需要检查数据源的日期,都有规范成正确的格式
from random import randint
from pyecharts import options as opts
from pyecharts.charts import Line, Timeline
from pyecharts.globals import ThemeType
import pandas as pd
import numpy as np
from datetime import datetime
import warnings
warnings.filterwarnings("ignore")
from pyecharts.charts import Line
from pyecharts.charts import Bar, Timeline, Map, Pie, Line
from pyecharts.commons.utils import JsCode
import math
data = pd.read_excel('N185_数据源.xlsx',usecols=["交易时间","交易账号","收付标志","交易对手账卡号","交易金额","交易余额"])
data['日期'] = data['交易时间'].apply(lambda x:datetime.strftime(x,"%Y-%m-%d  %H:%M:%S")) #在表格中也要规范下,消除明显的错误
data.loc[((data['收付标志']== "进")&(data['交易金额']>0)),"收"]=data['交易金额'].apply(lambda x:int(x/10000))  #左边是既可以读又可以写的loc,逗号后面是新列名
data.loc[((data['收付标志']== "出")&(data['交易金额']>0)),"支"]=data['交易金额'].apply(lambda x:int(x/10000))  #左边是既可以读又可以写的loc,逗号后面是新列名
data['交易余额'] = data['交易余额'].apply(lambda x:int(x/10000))  #将明细金额缩小,横轴就小
# data.dropna(subset = ['收','支'],inplace=True)
data.fillna("-",inplace=True)
data2 = data.loc[~(((data['收']=="-")&(data['支']=="-"))|((data['收']=="-")&(data['支']==0))|((data['收']==0)&(data['支']=="-")))]
data2.to_excel("C://Users//wj//Desktop//linshi//总.xlsx")
def timeline_bar() -> Timeline:
    ben_list = data2["交易账号"].unique() #提取本方所有要素
    tl = Timeline()  #建立动态轴
    for i in ben_list:  #遍历本方
#         print(i)  #调试用
        df2=data2[(data2["交易账号"]==i)*(data2["交易金额"]>= 2)]  #筛选本方 
#         df2.to_excel("C://Users//wj//Desktop//linshi//"+str(i).replace("|","")+"h.xlsx")
        if df2.empty: #为何要加这句,因为筛选条件太苛刻,造成为空,后面报错,前面就要处理好
            break
        x_data = df2['日期'].to_list()
        y_total = df2['交易余额'].to_list()
        y_in = df2['收'].to_list()
        y_out = df2['支'].to_list()
        bar = (
            Bar()
            .add_xaxis(x_data)
            .add_yaxis(
                series_name="",
                y_axis=y_total,
                stack="总量",
                itemstyle_opts=opts.ItemStyleOpts(color="rgba(0,0,0,0)"),
            )
            .add_yaxis(series_name="上升", y_axis=y_in, stack="总量")
            .add_yaxis(series_name="下降", y_axis=y_out, stack="总量")
            .set_global_opts(yaxis_opts=opts.AxisOpts(type_="value"), 
                            datazoom_opts=opts.DataZoomOpts(range_start=1,range_end=7))
        )
        tl.add(bar, "本:{}".format(i))
        tl.add_schema(play_interval=3000,   #播放速度,毫秒级,1秒等于1000毫秒
        is_timeline_show=True,  #是否显示 timeline 组件
        is_auto_play=False)  #不做展示的话,就可以不要自动播放
    return tl
timeline_bar().render("N185_按时间轴轮播  涨跌图 分析收支.html")

CPU times: total: 547 ms
Wall time: 605 ms





'D:\\myjupyter\\自制python 脚本工具库\\N185_按时间轴轮播  涨跌图 分析收支.html'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kafeihule

感谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值