pyechast绘制图表,生成周报

📣 概况
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

✨ 特性

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

如何安装

pip 安装

$ pip(3) install pyecharts

源码安装 

$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install
# 或者执行 python install.py

 

读取如图所示人生导航数据 

 代码思路:1.提取数据(对数据进行筛选求和)

                   2.将数据传入图表,生成图

涉及的内容:python基础,pandas,pyechast,类等

from pyecharts.globals import ThemeType
import pandas as pd
from pyecharts import options as opts       
from pyecharts.charts import Bar,Page,Pie
class weekly():
    colors = ["#5793f3", "#d14A61", "#675bba","Pink"]
    #初始化打开文件,按日期进行分组,获取每组的键(timestamp),调用相关方法
    def __init__(self):    
        self.activity_values = pd.read_excel(r'D:\myLife\myLife(2)1.xlsx',sheet_name=1)
        self.every_activity_values = self.activity_values.groupby("日期")
        self.df = list(self.every_activity_values.groups.keys())
        self.deal_time()
        self.sum_activity()
    def deal_time(self):
        '''
        筛选时间字符串
        '''
        self.list1 = []
        for i in self.df:
            self.list1.append(i)                            #75为2月21日   每一周加7                     
            if len(self.list1) == 96:                       
                self.list1.clear()
    def sum_activity(self):
        '''
        获取各组的数据,按照操作进行分组求和,通过concat方法拼接dataframe多表,再对其按照操作进行分组求和,
        索引为操作名称,获取索引
        '''
        self.ds = []
        for j in self.list1:
            self.dt = self.every_activity_values.get_group(j)
            self.ds.append(self.dt.groupby("操作").sum())
        self.p = pd.concat(self.ds)
        self.ps = self.p.groupby("操作").sum()
        self.ix = self.ps.index
week = weekly()
print(len(week.list1))#此处用来查看list1是不是这一周的内容
print(week.list1)

def pie1_rosetype() -> Pie:
    c = (
    Pie(init_opts=opts.InitOpts(theme=ThemeType.LIGHT,width='1000px',height='600px'))     #主题风格
    .add("",   [list(z) for z in zip(week.ix,week.ps["时长"])] )
    .set_global_opts(title_opts=opts.TitleOpts(title="第四周活动时长占比",pos_top="top",pos_left="left"),
                    legend_opts=opts.LegendOpts(pos_left="right", orient="vertical"))       # 设置标题   
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{d}%')))    # 显示百分比
    return c
def page_simple_layout():
#7.page()运行多图
    page = Page(layout=Page.SimplePageLayout)
    page.add(                       
        pie1_rosetype(),)
    page.render("每周周报.html")
#放到主函数执行   
#作用:当模块被直接运行时,以下代码块将被运行.当模块是被导入时(从另一个py文件调用模块时),以下代码块不被运行。
if __name__ == "__main__":
    page_simple_layout()
    print('完成')

  

Excel文件链接icon-default.png?t=M85Bhttps://www.kdocs.cn/l/ctCHxkum3sGf 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十一月的肖邦689

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值