首页 > 编程语言 >Python- pyecharts 制作示例可视化图表

Python- pyecharts 制作示例可视化图表

时间:2024-04-16 14:14:12浏览次数:25  
标签:pyecharts 示例 Python json charts rate import data

1、开发可视化图表使用的技术栈:Echarts 框架的 Python 包 —— pyecharts
2、官方网站: pyecharts - A Python Echarts Plotting Library built with love.
3、官方画廊: 中文简介 - Document (pyecharts.org)
安装 pyecharts包:pip install pyecharts

一、构建各类图表所创建的对象

构建折线图:

from pyecharts.charts import Line
line = Line()

构建地图:

from pyecharts.charts import Map
map = Map()

构建柱状图

from pyecharts.charts import Bar
bar = Bar()

二、使用 pyecharts 制作折线图

import json
# 导入 Line 功能对象构建折线图对象
from pyecharts.charts import Line
# 构建 Map 地图对象
from pyecharts.charts import Map
# 构建 Bar 柱状图对象
from pyecharts.charts import Bar
# 标题选项所有的可配置的选项所在包
from pyecharts.options import *

# 创建作图对象
line = Line()

# 添加图像对象的 x 轴的数据,传入的是一个列表
line.add_xaxis(["上海", "北京", "南京", "深圳"])

# 添加图像对象 y 轴的数据,数据值以字典/列表的形式传入
line.add_yaxis("GDP", [10, 30, 50, 70])

# pyecharts 模块的全局配置
# 全局配置选项可以通过 set_global_opts 方法做以设置
line.set_global_opts(
    # 设置图表标题
    title_opts=TitleOpts(
        title="折线图",  # 图表名称标题
        pos_left="center",  # 标题距离最左边的距离
        pos_bottom="1%"  # 距离底部有多远
    ),
    legend_opts=LegendOpts(is_show=True),  # 设置图表的图例
    toolbox_opts=ToolboxOpts(is_show=True),  # 设置图表的工具箱
    visualmap_opts=VisualMapOpts(is_show=True)  # 视觉映射
)

# 调用 render 方法生成图像
line.render()

示例代码:

import json
# 导入 Line 功能对象构建折线图对象
from pyecharts.charts import Line
# 构建 Map 地图对象
from pyecharts.charts import Map
# 构建 Bar 柱状图对象
from pyecharts.charts import Bar
# 标题选项所有的可配置的选项所在包
from pyecharts.options import *

def makeChart():
    # 读取json文件
    jsData = open(r"C:\Users\Admin\Desktop\fsdownload\curName.json", "r", encoding="UTF-8")
    number = jsData.read()
    jsData.close()

    # 使用 json.loads()  方法,将 json 数据转换为 Python 中的列表 list
    pydata = json.loads(number)
    rate = []  # 存放汇率
    country = []  # 存放国家信息
    for data in pydata:
        for t in range(len(data)):
            rate.append(data[t]["rate"])
            country.append(data[t]["country"])
    # 创建折线图对象
    line = Line()
    # 设置x轴数据
    line.add_xaxis(country[:10])
    # 设置 y 轴数据
    line.add_yaxis(series_name="汇率", y_axis=rate[:10], )
    # 设置全局配置项
    line.set_global_opts(title_opts=TitleOpts(title="跨国汇率图", pos_left="center", pos_bottom="90%"))
    # 生成图表
    line.render(path="rate.html")


if __name__ == '__main__':
    makeChart()

示例代码图像:
image

三、构建地图

import json
# 导入 Line 功能对象构建折线图对象
from pyecharts.charts import Line
# 构建 Map 地图对象
from pyecharts.charts import Map
# 构建 Bar 柱状图对象
from pyecharts.charts import Bar
# 标题选项所有的可配置的选项所在包
from pyecharts.options import *

def mapChart():
    # 构建地图对象
    map = Map()
    data = [
        ("浦东新区", 150), ("崇明区", 250), ("青浦区", 350), ("松江区", 450), ("闵行区", 350), ("奉贤区", 150)
    ]
    # 添加数据到地图中
    map.add(series_name="上海地图",  # 地图名称
            data_pair=data,  # 地图数据
            maptype="上海")  # 地图类型,默认为 "china"
    # 设置地图的全局选项
    map.set_global_opts(visualmap_opts=VisualMapOpts(
        is_show=True,  # 是否展示图例颜色
        is_piecewise=True,  # 是否开启手动设置范围
        # 手动进行颜色范围设置
        pieces=[{"min": 1, "max": 99, "label": "1~99", "color": "#f9d7d7"},
                {"min": 100, "max": 199, "label": "100~199", "color": "#f5b3b3"},
                {"min": 200, "max": 299, "label": "200~299", "color": "#ee8788"},
                {"min": 300, "max": 399, "label": "300~399", "color": "#e63d3f"},
                {"min": 400, "max": 499, "label": "400~499", "color": "#db1f21"},
                {"min": 500, "label": "500~", "color": "#bc2021"}
                ]
    ))
    # 进行绘图操作
    map.render("shanghaiMap.html")

示例代码结果图表:
image

四、构建动态柱状图

import json
# 导入 Line 功能对象构建折线图对象
from pyecharts.charts import Line
# 构建 Map 地图对象
from pyecharts.charts import Map
# 构建 Bar 柱状图对象
from pyecharts.charts import Bar
# 标题选项所有的可配置的选项所在包
from pyecharts.options import *

def barChart():
    # 获取示例数据
    country = []
    rate = []
    number = readJsonDate(file_name)
    pydata = json.loads(number)
    # pydata = pydata[:5]
    for data in pydata:
        for dat in range(len(data)):
            if data[dat]["rate"] > 1000:
                country.append(data[dat]["country"])
                rate.append(data[dat]["rate"])
    # 创建图表
    bar = Bar()
    # 添加坐标轴数据
    bar.add_xaxis(country)
    # label_opts 参数:将数值显示在柱状图的位置
    bar.add_yaxis("rate", rate, label_opts=LabelOpts(position="right"))
    # 翻转 x 轴和 y 轴
    bar.reversal_axis()
    # 绘制图表
    bar.render("bar.html")

示例代码结果图表:
image


完整代码:

import json
# 导入 Line 功能对象构建折线图对象
from pyecharts.charts import Line
# 构建 Map 地图对象
from pyecharts.charts import Map
# 构建 Bar 柱状图对象
from pyecharts.charts import Bar
# 标题选项所有的可配置的选项所在包
from pyecharts.options import *

file_name = r"C:\Users\Admin\Desktop\fsdownload\curName.json"

def readJsonDate(file_name):
    # 读取json文件
    json_data = open(file_name, "r", encoding="UTF-8")
    number = json_data.read()
    json_data.close()

    return number

def lineChart():
    number = readJsonDate(file_name)
    # 使用 json.loads()  方法,将 json 数据转换为 Python 中的列表 list
    pydata = json.loads(number)
    rate = []  # 存放汇率
    country = []  # 存放国家信息
    for data in pydata:
        for t in range(len(data)):
            rate.append(data[t]["rate"])
            country.append(data[t]["country"])
    # 创建折线图对象
    line = Line()
    # 设置x轴数据
    line.add_xaxis(country[:10])
    # 设置 y 轴数据
    line.add_yaxis(series_name="汇率", y_axis=rate[:10], )
    # 设置全局配置项
    line.set_global_opts(title_opts=TitleOpts(title="跨国汇率图", pos_left="center", pos_bottom="90%"))
    # 生成图表
    line.render(path="rate.html")

def mapChart():
    # 构建地图对象
    map = Map()
    data = [
        ("浦东新区", 150), ("崇明区", 250), ("青浦区", 350), ("松江区", 450), ("闵行区", 350), ("奉贤区", 150)
    ]
    # 添加数据到地图中
    map.add(series_name="上海地图",  # 地图名称
            data_pair=data,  # 地图数据
            maptype="上海")  # 地图类型,默认为 "china"
    # 设置地图的全局选项
    map.set_global_opts(visualmap_opts=VisualMapOpts(
        is_show=True,  # 是否展示图例颜色
        is_piecewise=True,  # 是否开启手动设置范围
        # 手动进行颜色范围设置
        pieces=[{"min": 1, "max": 99, "label": "1~99", "color": "#f9d7d7"},
                {"min": 100, "max": 199, "label": "100~199", "color": "#f5b3b3"},
                {"min": 200, "max": 299, "label": "200~299", "color": "#ee8788"},
                {"min": 300, "max": 399, "label": "300~399", "color": "#e63d3f"},
                {"min": 400, "max": 499, "label": "400~499", "color": "#db1f21"},
                {"min": 500, "label": "500~", "color": "#bc2021"}
                ]
    ))
    # 进行绘图操作
    map.render("shanghaiMap.html")

def barChart():
    # 获取示例数据
    country = []
    rate = []
    number = readJsonDate(file_name)
    pydata = json.loads(number)
    # pydata = pydata[:5]
    for data in pydata:
        for dat in range(len(data)):
            if data[dat]["rate"] > 1000:
                country.append(data[dat]["country"])
                rate.append(data[dat]["rate"])
    # 创建图表
    bar = Bar()
    # 添加坐标轴数据
    bar.add_xaxis(country)
    # label_opts 参数:将数值显示在柱状图的位置
    bar.add_yaxis("rate", rate, label_opts=LabelOpts(position="right"))
    # 翻转 x 轴和 y 轴
    bar.reversal_axis()
    # 绘制图表
    bar.render("bar.html")

if __name__ == '__main__':
    lineChart()
    mapChart()
    barChart()

在代码正确执行完毕之后,会在当前文件夹路径中生成三个对应的html文件:
image

仅供个人学习记录使用。

标签:pyecharts,示例,Python,json,charts,rate,import,data
From: https://www.cnblogs.com/JiurenShang/p/18137961

相关文章

  • C++发票识别、发票查验接口示例,您的“发票管理专家”
    发票识别+发票查验接口。当财务人员在进行发票的数字化管理时,仅需一键上传发票图片,翔云发票识别接口即可快速、精准对发票的全票面信息进行提取,翔云发票查验接口可根据识别接口提取的发票信息实时联网进行真伪查验。助财务工作者从发票海洋中解脱出来,提升发票管理效率与准确率......
  • Python Flask+Pandas读取excel显示到html网页: CSS控制表格样式
    前言全局说明CSS控制表格样式一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563修改内容后,要重启flask服务,修改才能生效四、CSS控制表格样式4.1.2文件名:index.pyfrom......
  • Python Flask+Pandas读取excel显示到html网页:CSS控制表格样式
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、CSS控制表格样式4.1.2文件名:index.pyfromflaskimportFlaskapp=Flask(__name__)@app.route("/excel......
  • Tkinter常用功能示例(一)
    技术背景Tkinter是一个Python自带的GUI框架,虽然现在主流的还是用pyqt的多一些,但是Tkinter在环境配置上可以节省很多工作,可以用来做一些小项目。如果是大型项目,用pyqt或者QT确实会更加专业一些。本文主要介绍一些简单的Tkinter的示例,比如文本框定义、标签定义和TreeView定义等。......
  • Python Flask+Pandas读取excel显示到html网页: 没有excle文件提示
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、没有excle文件提示4.1.2文件名:index.py添加tryexcept获取没有文件的异常fromflaskimportFlaskapp......
  • Python Flask+Pandas读取excel显示到html网页: 环境搭建显示内容
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563Pandas安装https://www.cnblogs.com/wutou/p/17811839.html四、环境搭建4.1.2文件名:index.pyfromflaskimp......
  • Python这个代码里面x=self是什么意思啊
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【无敌劈叉小狗】问了一个Python基础的问题,问题如下:这个代码里面x=self是什么意思啊?self到底是个什么存在呢?感觉把类本身赋值给x这个点有点抽象。二、实现过程这里【论草莓如何成为冻干莓】分享了自己的一个经验:就......
  • CentOS 7.9编译安装Python-3.10.13
    目录查看CentOS版本、系统默认gcc版本、Python版本和pip版本部署Python-3.10.13测试将yum中的Python版本修改为系统原来的2.7.5版本查看CentOS版本、系统默认gcc版本、Python版本和pip版本cat/etc/redhat-releasegcc--versionpython-Vpip-V部署Python-3.10.13下载......
  • python制作罗盘时钟
    背景图importsysimportmathimportpygamefromdatetimeimportdatetimefrompygameimportdisplay,image,font,transform#创建罗盘时钟的窗口defcreateWindow():pygame.init()screen=display.set_mode((800,700),pygame.RESIZABLE)display.s......
  • python 序列类型 元组
    元组定义元组是不可变序列,通常用于储存异构数据的多项集(例如由enumerate()内置函数所产生的二元组)。元组也被用于需要同构数据的不可变序列的情况(例如允许存储到set或dict的实例)。元组是Python中的一种数据结构,类似于列表,但是元组是不可变的,意味着一旦创建,元组内的元素......