使用python的pyecharts库绘制多选项卡折线图示例

2023-11-12

使用python的pyecharts库绘制多选项卡折线图示例

pyecharts介绍

Pyecharts是一个用于生成Echarts图表的类库,可以与Python进行对接,方便在Python中直接使用数据生成图。

Echarts是百度开源的一个数据可视化JS库,生成的图可视化效果非常棒,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。

Pyecharts v1停止对Python 2.7及Python 3.4~3.5版本的支持和维护,仅支持Python 3.6+

环境

  • Ubuntu 18.04 LTS
  • python 3.8.10
  • pyecharts-1.9.1

安装环境

pip install pyecharts

条形图

  • 源码:
# -*- coding: utf-8 -*-
from pyecharts import options as opts
from pyecharts.charts import Bar, Page
#from impala.dbapi import connect

bar=Bar()
bar.add_xaxis(["数学", "语文", "英语", "政治", "历史", "地理", "物理", "化学", "生物"])
bar.add_yaxis("班级A", [134, 125, 127, 89, 95, 87, 85, 88, 89])
bar.add_yaxis("班级B", [131, 128, 129, 87, 92, 88, 86, 85, 92])
bar.set_global_opts(title_opts=opts.TitleOpts(title="学生考试成绩比较分析", subtitle="2019年班级A和班级B期末考试"),
)

#第一次渲染时调用load_javasrcript文件
bar.load_javascript()

#展示数据可视化图表
#bar.render_notebook()
bar.render('test.html')
  • 生成网页:test.html
  • 打开后的效果图:
    在这里插入图片描述

折线图

  • 源码:
from pyecharts import options as opts
from pyecharts.charts import Line, Page
#from impala.dbapi import connect

bar=Line()
bar.add_xaxis(["数学", "语文", "英语", "政治", "历史", "地理", "物理", "化学", "生物"])
bar.add_yaxis("班级A", [134, 125, 127, 89, 95, 87, 85, 88, 89])
bar.add_yaxis("班级B", [131, 128, 129, 87, 92, 88, 86, 85, 92])
bar.set_global_opts(title_opts=opts.TitleOpts(title="学生考试成绩比较分析", subtitle="2019年班级A和班级B期末考试"),
)

#第一次渲染时调用load_javasrcript文件
bar.load_javascript()

#展示数据可视化图表
#bar.render_notebook()
bar.render('test.html')
  • 生成网页:test.html
  • 打开后的效果图:

在这里插入图片描述

多选项卡折线图

  • 源码
    功能: 多选项卡展示不同海拔的time, internal, external 的图
import sys
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line, Pie, Tab
from pyecharts.faker import Faker


def run():

    altitudes = [100, 500, 1000, 2000]
    src_data = [{"altitude": 100, "ratio": [{"time": "2022-09-12 13:00", "internal": 0.512472225077207, "external": 0.09672359339631853}, {"time": "2022-09-12 12:00", "internal": 0.5263980679437406, "external": 0.10863849466864367}, {"time": "2022-09-12 11:00", "internal": 0.4262462549509512, "external": 0.14155159508726867}]}, {"altitude": 500, "ratio": [{"time": "2022-09-12 13:00", "internal": 0.04424255811772758, "external": 0.04457796000559457}, {"time": "2022-09-12 12:00", "internal": 0.07333118538032697, "external": 0.04766812003142175}, {"time": "2022-09-12 11:00", "internal": 0.09426504482416587, "external": 0.1574164637423162}]}, {"altitude": 1000, "ratio": [{"time": "2022-09-12 13:00", "internal": 0.06287260843470314, "external": 0.037199118472520776}, {"time": "2022-09-12 12:00", "internal": 0.07333118538032697, "external": 0.047357578532845716}, {"time": "2022-09-12 11:00", "internal": 0.023566261206041467, "external": 0.047286550263102814}]}, {"altitude": 2000, "ratio": [{"time": "2022-09-12 13:00", "internal": 0.16459085370054685, "external": 0.0373210827953815}, {"time": "2022-09-12 12:00", "internal": 0.09841943823957555, "external": 0.024855929823118964}, {"time": "2022-09-12 11:00", "internal": 0.07855420402013823, "external": 0.031113625906015532}]}]
    
    
    # 多选项卡展示不同海拔的图
    tab = Tab()
    i = 0
    while i < len(altitudes):
        if i == 0:
            tab_name = '0-%dm' %(altitudes[i])
        else:
            tab_name = '%d-%dm' %(altitudes[i-1], altitudes[i])
            
        # 数据格式转换
        for item in src_data:
            if item["altitude"] == altitudes[i]:
                data = item["ratio"]
                break
        tdata = []
        idata = []
        edata = []
        for item in data:
            tdata.append(item['time'])
            idata.append(item['internal'])
            edata.append(item['external'])
        data = {'time': tdata, 'internal': idata, 'external': edata}
        
        tab.add(line_markpoint(data, tab_name), tab_name)
        
        i += 1
        
    save_path = "test.html"
    tab.render(save_path)
    #tab.render_notebook()
    
    
    print('save_path', save_path)
    return save_path
    
    
def line_markpoint(data, tab_name) -> Line:
    # data = {'time': [2021,2022,2023], 'internal': [0.1,0.2,0.3], 'external': [0.12,0.32,0.12]}
    
    
    total = [data['internal'][i] + data['external'][i] for i in range(len(data['internal']))]
    c = (
        Line()
        .add_xaxis(data['time'])
        .add_yaxis(
            "all",
            total, is_smooth=True)
        .add_yaxis(
            "internal",
            data['internal'], is_smooth=True)
        .add_yaxis(
            "external",
            data['external'], is_smooth=True)
        .set_global_opts(title_opts=opts.TitleOpts(title=tab_name), \
            tooltip_opts=opts.TooltipOpts(trigger="axis"))
    )
    return c


if __name__ == '__main__':
    run()
  • 生成网页:test.html
  • 打开后的效果图:
    图1:
    在这里插入图片描述

图2:
在这里插入图片描述

图3:
在这里插入图片描述

【】以上就是 pyecharts库绘制多选项卡折线图示例
【】如果以上示例对您有帮助,麻烦点赞,谢谢!

参考

【1】https://zhuanlan.zhihu.com/p/548852309
【2】https://www.jb51.net/article/243189.htm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python的pyecharts库绘制多选项卡折线图示例 的相关文章

  • echarts地图的tooltip自定义样式显示图表

    echarts地图的tooltip自定义样式显示图表 最近遇到一个需求 需要在地图中实现鼠标点击或者停留在地图中某一片区域时 该区域显示亮高和显示tooltip提示框信息 但是难点在于需要在tooltip提示框中再绘制一层图表 按以往我们做
  • 水球图 及各种参数设置

    水球图 Liquid Fill Chart 是Echarts的一个插件 在官方文档中没有 可以用来优雅的展示百分比数据 水球图 gif 安装 HTML中引入水球图
  • UE4 通过Echarts实现各种统计图

    主要内容 本文主要讲解UE4 UMG向网页发送数据 通过WebBrowser插件将用Echarts定制好的统计图在UE4内展现出来 达到数据可视化的效果 本文主要演示柱形图的效果 其它类型的统计图可以结合Echarts官方案列以及文档自行修
  • 解决ECharts 因X轴数据过多导致重叠显示不全的问题

    X轴 加滚动条 通过配置合适的起始位置和结束位置可以做到数据过多不重叠 数据太少也不至于很丑 定位合适的位置后还可以通过手动拉伸滚动条的长度动态的显示不同条目数 对于动态的条目数滚动条要比倾斜数据灵活太多尤其是根据时间段动态显示数据 仅此表
  • adb禁止鸿蒙系统更新

    链接 工具存在百度云
  • 点击echarts柱状图动态改变数据项颜色样式

    首先附上参考文章连接 https blog csdn net weixin 42870683 article details 103528254添加链接描述 今天来实现点击echarts柱状图 动态改变柱状图数据项颜色样式的案例 只要认真做
  • Firefox如何快速关闭网页

    问题You 火狐浏览器如何通过鼠标滑动 快速关闭窗口 火狐浏览器可以通过安装扩展程序来实现通过鼠标滑动快速关闭窗口的功能 以下是具体步骤 打开火狐浏览器 在地址栏中输入 about addons 并回车 在左侧菜单中选择 扩展 然后在右侧搜
  • 在echarts中自定义提示框内容

    以折线图为例 在鼠标滑过每个数据标签时 为了更友好地显示数据内容 需要对显示的数据内容作格式化处理 添加自定义内容 这就需要用到tooltip的formatter属性的回调函数 本文将从配置代码和效果两方面来展示它的使用 柱状图的原理类似
  • 自变化折线图(两周数据)

  • @vitejsplugin-vue requires vue (>=3.2.13) or @vuecompiler-sfc to be present in the dependency tree

    运行项目的时候 首先会提示要安装 vue compiler sfc 但是安装后运行项目成功但是页面是空白并且报错 VUE HMR RUNTIME is not defined 摸索了半天 查看到package json依赖文件 没有vue
  • Vue 中使用 Echarts5.0 的一些问题(vue-cli 下开发)

    问题 最新版的 Echarts5 0 使用 import echarts from echarts 导入 会发现导出的 echarts 是 undefined 的情况 无法正常使用 解决方案一 新版本有问题就用旧版本咯 卸载 Echarts
  • ECharts 设置折线颜色和小圆点颜色

    ECharts 设置折线颜色只需要设置lineStyle的color即可 设置小圆点颜色只需要设置itemStyle的颜色即可 series name seriesName type line itemStyle normal color
  • echarts坐标轴

    坐标轴 直角坐标系中的 x y 轴 x 轴 y 轴 x 轴和 y 轴都由轴线 刻度 刻度标签 轴标题四个部分组成 部分图表中还会有网格线来帮助查看和计算数据 普通的二维数据坐标系都有 x 轴和 y 轴 通常情况下 x 轴显示在图表的底部 y
  • pyecharts运行后产生的html文件用浏览器打开空白

    引用 https github com pyecharts pyecharts issues 503 使用logging日志打印代码错误 coding utf 8 from future import unicode literals im
  • Echarts-折线图-设置线条颜色以及线条以下区域显示渐变颜色

    首先 先看折线图效果 1 设置线条颜色 在series中 数组项设置lineStyle属性 lineStyle 设置线条的style等 normal color red 折线线条颜色 红色 2 设置线条上点的颜色 也是图例的颜色 在seri
  • Vue3+Echarts:堆积柱状图的绘制

    一 需求 在Vue3项目中 想用Echarts来绘制堆积柱状图 去展示最近一周APP在不同渠道的登录人数 效果如下 二 实现 关于Echarts的下载安装以及图表的样式设计 此处不展开 1 Templates部分
  • 如何在echarts中添加渐变颜色?

    I made a echart line graph https stackblitz com edit angular aqghec file src 2Fapp 2Fapp component ts Now I want to add
  • javascript - eCharts - 多个 y 轴彼此重叠

    I use eCharts JavaScript 插件 https ecomfe github io echarts doc public en index html创建折线图 正如您在下面所附的图片中看到的 y 轴彼此重叠 这是我使用的选
  • 百度的echarts - 填充两行之间的空间

    我想找到一种在 ECharts 中绘制两条线并填充它们之间的空间的方法 如下所示 这样每条线都有自己的颜色 根据线条的顺序 区域填充为一种颜色或另一种颜色 见图 有本地方法吗 我发现有些人在提到extensions 但没有人提供任何关于如何
  • 当系列没有相同的时间值时,如何在工具提示中显示所有系列

    我有一个显示多个时间序列的图表 不同时间序列不会同时采样 有没有办法在工具提示中显示所有系列 在示例中 您可以看到所有系列都包含在前 2 个点的工具提示中 因为它们是同时采样的 其余点仅包含 1 个系列 var myChart echart

随机推荐