iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python pyecharts 数据可视化模块的配置方法
  • 382
分享到

Python pyecharts 数据可视化模块的配置方法

2024-04-02 19:04:59 382人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. pyecharts 模块介绍2. pyecharts 模块安装3. pyecharts 配置选项3.1 全局配置选项3.2 系列配置选项4. 基础折线图的构建4.1 基本使

1. pyecharts 模块介绍

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

pyecharts 官网:https://pyecharts.org/#/zh-cn/

pyecharts 画廊地址:Https://gallery.pyecharts.org/#/README

2. pyecharts 模块安装

pip install pyecharts

3. pyecharts 配置选项

pyecharts 模块中有很多配置选项,常用到两个类别的选项:全局配置选项和系列配置选项。

3.1 全局配置选项

全局配置选项可以通过 set_global_opts 方法来进行配置,通常对图表的一些通用的基础的元素进行配置,例如标题、图例、工具箱、鼠标移动效果等等,它们与图表的类型无关。

示例代码:通过折线图对象对折线图进行全局配置

from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts

# 获取折线图对象
line = Line()

# 对折线图进行全局配置
line.set_global_opts(
    # 设置标题、标题的位置...
    title_opts=TitleOpts("国家GDP展示", pos_left="center", pos_bottom="1%"),
    # 设置图例是展示的...
    legend_opts=LegendOpts(is_show=True),
    # 设置工具箱是展示的
    toolbox_opts=ToolboxOpts(is_show=True),
    # 设置视觉映射是展示的
    visualmap_opts=VisualMapOpts(is_show=True)
)

3.2 系列配置选项

系列配置选项是针对某个具体的参数进行配置,可以去 pyecharts 官网进行了解。

4. 基础折线图的构建

4.1 基本使用流程

1.导包,导入 Line 功能构建折线图对象

from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts

2.获取折线图对象

line = Line()

3.添加 x、y 轴数据(添加系列配置)

line.add_xaxis(["中国", "美国", "英国"])
line.add_yaxis("GDP", [30, 20, 10])

4.添加全局配置

line.set_global_opts(
    # 设置标题、标题的位置...
    title_opts=TitleOpts("国家GDP展示", pos_left="center", pos_bottom="1%"),
    # 设置图例是展示的...
    legend_opts=LegendOpts(is_show=True),
    # 设置工具箱是展示的
    toolbox_opts=ToolboxOpts(is_show=True),
    # 设置视觉映射是展示的
    visualmap_opts=VisualMapOpts(is_show=True)
)

5.生成图表(通过 render 方法将代码生成图像)

line.render()

4.2 实现2020年美印日确诊人数对比折线图

import JSON
from pyecharts.charts import Line
# 获取不同国家疫情时间
from pyecharts.options import TitleOpts, LabelOpts
def getdata(file):
    # 处理数据
    try:
        f = open(file, 'r', encoding='utf8')
    except FileNotFoundError as e:
        print(f"文件不存在,具体错误为:{e}")
    else:
        data = f.read()

        # jsON 转 Python 字典
        dict = json.loads(data)

        # 获取 trend
        trend_data = dict['data'][0]['trend']

        # 获取日期数据,用于 x 轴(只拿2020年的数据)
        x_data = trend_data['updateDate'][:314]

        # 获取确认数据,用于 y 轴
        y_data = trend_data['list'][0]['data'][:314]

        # 返回结果
        return x_data, y_data
    finally:
        f.close()


# 获取美国数据
us_x_data, us_y_data = getdata("E:\\折线图数据\\美国.txt")

# 获取印度数据
in_x_data, in_y_data = getdata("E:\\折线图数据\\印度.txt")

# 获取日本数据
jp_x_data, jp_y_data = getdata("E:\\折线图数据\\日本.txt")

# 生成图表
line = Line()

# 添加 x 轴数据(日期,公用数据,不同国家都一样)
line.add_xaxis(us_x_data)

# 添加 y 轴数据(设置 y 轴的系列配置,将标签不显示)
line.add_yaxis("美国确诊人数", us_y_data, label_opts=LabelOpts(is_show=False))  # 添加美国数据
line.add_yaxis("印度确诊人数", in_y_data, label_opts=LabelOpts(is_show=False))  # 添加印度数据
line.add_yaxis("日本确诊人数", jp_y_data, label_opts=LabelOpts(is_show=False))  # 添加日本数据

# 配置全局选项
line.set_global_opts(
    # 设置标题
    title_opts=TitleOpts("2020年美日印三国确诊人数对比折线图", pos_left="center", pos_bottom="1%"),

)

# 生成图表
line.render()

5. 基础地图构建

5.1 基本使用流程

1.导包,导入 Map 功能获取地图对象

from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

2.获取地图对象

map = Map()

3.准备好数据

data = [
    ("北京", 99),
    ("上海", 199),
    ("广州", 299),
    ("湖南", 199),
    ("安徽", 99),
    ("湖北", 399),
]

4.添加数据到地图对象中

# 地图名称、传入的数据、地图类型(默认是中国地图)
map,add("地图", data, "china")

5.添加全局配置

map.set_global_opts(
    # 设置视觉映射配置
    visualmap_opts=VisualMapOpts(
        # 打开视觉映射(可能不精准,因此可以开启手动校准)
        is_show=True,
        # 开启手动校准范围
        is_piecewise=True,
        # 设置要校准参数的具体范围
        pieces=[
            {"min": 1, "max": 9, "label": "1~9人", "color": "#CCFFFF"},
            {"min": 10, "max": 99, "label": "10~99人", "color": "#FFFF99"},
            {"min": 100, "max": 199, "label": "100~199人", "color": "#FF9966"},
            {"min": 200, "max": 299, "label": "200~299人", "color": "#FF6666"},
            {"min": 300, "label": "300人以上", "color": "#CC3333"},
        ]
    )
)

6.生成地图

map.render()

5.2 实现国内疫情地图

import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts, TitleOpts, LegendOpts

# 读取数据
f = open("E:\\地图数据\\疫情.txt", 'r', encoding='utf8')
str_json = f.read()

# 关闭文件
f.close()

# JSON 转 python 字典
data_dict = json.loads(str_json)

# 取到各省数据
province_data_list = data_dict['areaTree'][0]['children']

# 组装每个省份和确诊人数为元组,并封装到列表内
data_list = []
for province_data in province_data_list:
    province_name = province_data['name']
    province_total_confirm = province_data['total']['confirm']
    data_list.append((province_name, province_total_confirm))

# 创建地图对象
map = Map()

# 添加数据
map.add("各省确诊总人数", data_list, "china")

# 设置全局配置,定制分段的视觉映射
map.set_global_opts(
    title_opts=TitleOpts('全国疫情地图', pos_left='center', pos_bottom='1%'),
    legend_opts=LegendOpts(is_show=True),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 9, "label": "1~9人", "color": "#CCFFFF"},
            {"min": 10, "max": 99, "label": "10~99人", "color": "#FFFF99"},
            {"min": 100, "max": 499, "label": "100~499人", "color": "#FF9966"},
            {"min": 500, "max": 999, "label": "500~999人", "color": "#FF6666"},
            {"min": 1000, "max": 9999, "label": "1000~9999人", "color": "#CC3333"},
            {"min": 10000, "label": "10000人以上", "color": "#990033"}
        ]
    )
)

# 绘图
map.render()

5.3 实现省级疫情地图

import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts, TitleOpts, LegendOpts

# 读取数据
f = open("E:\\地图数据\\疫情.txt", 'r', encoding='utf8')
str_json = f.read()

# 关闭文件
f.close()

# JSON 转 python 字典
data_dict = json.loads(str_json)

# 取到河南省数据
city_data_list = data_dict['areaTree'][0]['children'][3]['children']

# 组装每个市和确诊人数为元组,并封装到列表内
data_list = []
for city_data in city_data_list:
    city_name = city_data['name'] + "市"
    city_total_confirm = city_data['total']['confirm']
    data_list.append((city_name, city_total_confirm))

# 创建地图对象
map = Map()

# 添加数据
map.add("各市确诊总人数", data_list, "河南")

# 设置全局配置,定制分段的视觉映射
map.set_global_opts(
    title_opts=TitleOpts('河南省疫情地图', pos_left='center', pos_bottom='1%'),
    legend_opts=LegendOpts(is_show=True),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 9, "label": "1~9人", "color": "#CCFFFF"},
            {"min": 10, "max": 99, "label": "10~99人", "color": "#FFFF99"},
            {"min": 100, "max": 499, "label": "100~499人", "color": "#FF9966"},
            {"min": 500, "max": 999, "label": "500~999人", "color": "#FF6666"},
            {"min": 1000, "max": 9999, "label": "1000~9999人", "color": "#CC3333"},
            {"min": 10000, "label": "10000人以上", "color": "#990033"}
        ]
    )
)

# 绘图
map.render()

6. 基础柱状图构建

6.1 基本使用流程

1.导包,导入 Bar 功能获取地图对象

from pyecharts.charts import Bar
from pyecharts.options import *

2.获取地图对象

bar = Bar()

3.添加 x 和 y 轴数据

# 添加 x 轴数据
bar.add_xaxis(["中国", "英国", "美国"])
# 添加 y 轴数据
bar.add_yaxis("GDP", [30, 20, 10])

4.添加全局配置

bar.set_global_opts(
    title_opts=TitleOpts("基础柱状图", pos_left='center', pos_bottom='1%')
)

5.生成地图

bar.render()

6.反转 xy 轴

bar.reversal_axis()

7.将数值标签添设置到右侧

bar.add_yaxis("GDP", [30, 20, 10], label_opts=LabelOpts(position='right'))

6.2 基础时间线柱状图

柱状图描述的是分类数据,但很难动态的描述一个趋势性的数据,为此 pyecharts 中提供了一种解决方案时间线。

如果说一个 Bar、Line 对象是一张图表的话,时间线就是创建一个一维的 x 轴,轴上的每一个点就是一个图表对象。

创建时间线的基础流程:

1.导包,导入时间线 Timeline

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *

2.准备好图表对象并添加好数据

bar1 = Bar()
bar1.add_xaxis(["中国", "英国", "美国"])
bar1.add_yaxis("GDP", [30, 20, 10], label_opts=LabelOpts(position='right'))
bar1.reversal_axis()

bar2 = Bar()
bar2.add_xaxis(["中国", "英国", "美国"])
bar2.add_yaxis("GDP", [50, 20, 30], label_opts=LabelOpts(position='right'))
bar2.reversal_axis()

bar3 = Bar()
bar3.add_xaxis(["中国", "英国", "美国"])
bar3.add_yaxis("GDP", [60, 30, 40], label_opts=LabelOpts(position='right'))
bar3.reversal_axis()

3.创建时间线对象 Timeline

timeline = Timeline()

4.将图表添加到 Timeline 对象中

# 添加图表到时间线中(图表对象,点名称)
timeline.add(bar1, "2020年GDP")
timeline.add(bar2, "2021年GDP")
timeline.add(bar3, "2022年GDP")

5.通过时间线绘图

timeline.render()

6.设置自动播放

timeline.add_schema(
    play_interval=1000,      # 自动播放的时间间隔,单位毫秒
    is_timeline_show=True,  # 是否显示自动播放的时候,显示时间线(默认 True)
    is_auto_play=True,       # 是否在自动播放(默认 False)
    is_loop_play=True        # 是否循环自动播放(默认 True)
)

7.设置时间线主题

# 导入 ThemeType
from pyecharts.globals import ThemeType

# 创建时间线对象时,设置主题参数
timeline = Timeline({"theme": ThemeType.DARK})

主题参数如下:

6.3 实现动态 GDP 柱状图

import json
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType

# 读取数据
f = open("E:\\动态柱状图数据\\1960-2019全球GDP数据.csv", 'r', encoding='GB2312')
data_lines = f.readlines()

# 关闭文件
f.close()

# 删除第一条数据
data_lines.pop(0)

# 将数据转化为字典才能出,格式为 {年份1: [[国家1, GDP], [国家2, GDP]], 年份2: [国家, GDP], ...}
data_dict = dict()

for line in data_lines:
    year = int(line.split(',')[0])  # 年份
    country = line.split(',')[1]  # 国家
    gdp = float(line.split(',')[2])  # gdp 数据,通过 float 强制转换可以把带有科学计数法的数字转换为普通数字

    try:  # 如果 key 不存在,则会抛出异常 KeyError
        data_dict[year].append([country, gdp])
    except KeyError:
        data_dict[year] = [[country, gdp]]

# 排序年份(字典对象的 key 可能是无序的)
sorted_year_list = sorted(data_dict.keys())

# 创建时间线对象
timeline = Timeline({"theme": ThemeType.LIGHT})

# 组装数据到 Bar 对象中,并添加到 timeline 中
for year in sorted_year_list:
    data_dict[year].sort(key=lambda element: element[1], reverse=True)
    # 该年份GDP前八的国家
    year_data = data_dict[year][:8]
    x_data = []
    y_data = []
    for country_gdp in year_data:
        x_data.append(country_gdp[0])
        y_data.append(country_gdp[1] / 100000000)
    # 创建柱状图
    bar = Bar()
    x_data.reverse()
    y_data.reverse()
    # 添加 x y 轴数据
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP(亿)", y_data, label_opts=LabelOpts(position='right'))
    # 反转 x y 轴
    bar.reversal_axis()
    # 设置每一年的图表的标题
    bar.set_global_opts(
        title_opts=TitleOpts(f"{year}年GDP全球前8国家", pos_left='5%')
    )
    # 将 bar 对象添加到 timeline 中
    timeline.add(bar, year)

# 设置自动播放参数
timeline.add_schema(
    play_interval=1000,      # 自动播放的时间间隔,单位毫秒
    is_timeline_show=True,   # 是否显示自动播放的时候,显示时间线(默认 True)
    is_auto_play=True,       # 是否在自动播放(默认 False)
    is_loop_play=True        # 是否循环自动播放(默认 True)
)

# 通过时间线绘图
timeline.render("1960~2019全球GDP前8国家.html")

到此这篇关于Python pyecharts 数据可视化模块的文章就介绍到这了,更多相关Python pyecharts 数据可视化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python pyecharts 数据可视化模块的配置方法

本文链接: https://www.lsjlt.com/news/120455.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python pyecharts 数据可视化模块的配置方法
    目录1. pyecharts 模块介绍2. pyecharts 模块安装3. pyecharts 配置选项3.1 全局配置选项3.2 系列配置选项4. 基础折线图的构建4.1 基本使...
    99+
    2024-04-02
  • python用pyecharts实现地图数据可视化的方法
    这篇文章给大家分享的是有关python用pyecharts实现地图数据可视化的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较。但直...
    99+
    2023-06-14
  • python的数据可视化模块有哪些
    python中的数据可视化模块有以下几种Matplotlib模块Matplotlib是一个全面的Python数据可视化库,常用于绘制二维图形,使用matplotlib可以帮助用户轻松地获得高质量的二维图形,matplotlib也可以绘制多种...
    99+
    2024-04-02
  • Python pyecharts数据可视化实例详解
    目录一、数据可视化1.pyecharts介绍2.初入了解(1).快速上手(2).简单的配置项介绍3.案例实战(1).柱状图Bar(2).地图Map(3).饼图Pie(4).折线图Li...
    99+
    2024-04-02
  • Python数据可视化的方法
    这篇“Python数据可视化的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python数据可视化的方法”文章吧。一、数...
    99+
    2023-06-30
  • Python数据可视化Pyecharts库的使用教程
    目录一、Pyecharts 概述1.1 Pyecharts 特性1.2 Pyecharts 入门案例二、Pyecharts 配置项2.1 全局配置项2.2 系列配置项三、Pyecha...
    99+
    2024-04-02
  • Python数据可视化之Pyecharts怎么使用
    1. 安装Pyechartspip install pyecharts2. 图表基础2.1 主题风格添加主题风格使用的是 InitOpts() 方法,该方法的主要参数有:参数描述width画布宽度,要求字符串格式,如 width=“500p...
    99+
    2023-05-14
    Python Pyecharts
  • Python数据可视化之Pyecharts使用详解
    目录1. 安装Pyecharts2. 图表基础2.1 主题风格2.2 图表标题2.3 图例2.4 提示框2.5 视觉映射2.6 工具箱2.7 区域缩放3. 柱状图 Bar模块4. 折...
    99+
    2024-04-02
  • Python数据可视化之Pyecharts如何使用
    这篇“Python数据可视化之Pyecharts如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python数据可视化...
    99+
    2023-07-06
  • python用pyecharts实现地图数据可视化
    目录一、全国各省单年GDP的可视化二、全国各省多年GDP的可视化有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较。但直方图在视觉上并不能很好突出地区间的...
    99+
    2024-04-02
  • python可视化数据分析pyecharts初步尝试
    目录整体说明例子BoxplotBarHeatMap有一个web+flask项目需要可视化数据分析结果,检索后发现,pyecharts工具包非常对口。 Echarts 是一个由百度开源...
    99+
    2024-04-02
  • Python数据可视化Pyecharts制作Heatmap热力图
    目录HeatMap:热力图1.基本设置2.热力图数据项Demo 举例1.基础热力图本文介绍基于 Python3 的 Pyecharts 制作&...
    99+
    2024-04-02
  • Python中的数据可视化matplotlib与绘图库模块
    目录一、条形图bar()二、直方图三、折线图四、散点图+直线图五、饼图六、箱型图七、plot函数参数八、图像标注参数九、Matplolib应用matplotlib官方文档:https...
    99+
    2024-04-02
  • Python数值方法及数据可视化
    随机数和蒙特卡洛模拟求解单一变量非线性方程求解线性系统方程函数的数学积分常微分方程的数值解 等势线绘图和曲线: 等势线  import numpy as np impor...
    99+
    2024-04-02
  • Python利用matplotlib模块数据可视化绘制3D图
    目录前言1 matplotlib绘制3D图形2 绘制3D画面图2.1 源码2.2 效果图3 绘制散点图3.1 源码3.2 效果图4 绘制多边形4.1 源码4.2 效果图5 三个方向有...
    99+
    2024-04-02
  • python GUI工具之PyQt5模块,pyCharm 配置PyQt5可视化窗口
    https://doc.qt.io/qt-5/qtwidgets-module.html https://doc.qt.io/qt-5/qt.html 一、简介 PyQt是Qt框架的Python语言实...
    99+
    2023-09-29
    qt python 开发语言
  • Python 数据可视化神器Pyecharts绘制图像练习
    目录前言:1.Hive数据库查询sql2.Python代码实现—柱状图3.Python代码实现—饼状图4.Python代码实现—箱型图5.Pyth...
    99+
    2024-04-02
  • Python pyecharts案例超市4年数据可视化分析
    目录一、数据描述1、数据概览二、数据预处理1、导入包和数据2、列名重命名3、提取数据中时间,方便后续分析绘图三、数据可视化1、美国各个地区销售额的分布(地图)2、各产品类别销售额对比...
    99+
    2024-04-02
  • Pyecharts可视化图片渲染的方法详解
    使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts提供了 selenium、phantomjs 和 pyppeteer 三种方式。 更多介绍可以学习官...
    99+
    2024-04-02
  • Python数据可视化Pyecharts库实现桑葚图效果
    目录基本思路我总结大概有三步:1. 先申明使用sankey2. 使用add 添加对sankey图的配置信息3. 最后render生成html文件展示首先介绍一下什么是桑葚图? 桑基图...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作