Python—数据可视化pyecharts

一、json数据格式的转换

Python数据和Json数据的相互转换

python 复制代码
# 准备数据
data = [{"name": "Ray", "age": 18}, {"name": "张三", "age": 20}]

# 将Python数据转换为json数据,通过方法json.dumps()
# ensure_ascii=False是为了确保中文不乱码
data = json.dumps(data,ensure_ascii=False)
print(data)

# 将json数据转换为Python数据,通过方法json.loads()
data = json.loads(data)
print(data)

二、pyecharts模块介绍

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

画廊官网:

拥有众多图标样式示例,可以参考代码

画廊中文版官网https://gallery.pyecharts.org/#/README

pyecharts模块安装

打开Pycharm的终端,输入如下命令开始安装pyecharts

pip install pyecharts

构建基础的折线图

python 复制代码
# 导包,导入Line功能构建折线图对象
from pyecharts.charts import Line

# 得到折线图对象,相当于画了坐标系
line = Line()

# 添加X轴数据,相当于写了X轴都有哪些点
line.add_xaxis(["中国", "美国", "英国"])

# 添加Y轴数据,相当于写了Y轴都有哪些点
line.add_yaxis("GDP", [30, 20, 10])

# 生成图表,相当于将点连成线
line.render()

运行代码后,会发现什么也没有,这个时候打开左侧的项目管理器,发现出现了一个【render.html】的文件

点击打开后,使用右上角预置的查看形式查看(可能需要挂梯子)

可以看到我们制作的图表

使用全局配置项设置属性

这里的全局配置选项可以通过set_global_opts方法进行配置,相应的选项和功能如下:

tips:使用时依旧需要导包

python 复制代码
line.set_global_opts(
    # 标题是GPD展示,其位置距离左侧是居中显示,距离底部1%的位置
    title_opts=TitleOpts(title="GPD展示", pos_left="center", pos_bottom="1%"),
    # 图例是显示的(默认显示)
    legend_opts=LegendOpts(is_show=True),
    # 工具箱是显示的
    toolbox_opts=ToolboxOpts(is_show=True),
    # 视觉映射是显示的
    visualmap_opts=VisualMapOpts(is_show=True)
)

运行结果:

构建一个基础地图

python 复制代码
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

# 准备地图对象
map = Map()

# 准备数据,必须加上"省",不然没有数据
data = [("河南省", 9), ("北京省", 99), ("上海市", 199), ("湖南省", 399), ("辽宁省", 499), ("青海省", 599)]

# 添加数据,默认中国
map.add("测试地图", data, "china")

# 设置全局选线
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": 499, "label": "99-499人", "color": "#FF9966"},
            {"min": 500, "max": 999, "label": "499-999人", "color": "#FF6666"},
        ]
    )
)

# 绘图
map.render()

构建基础柱状图

python 复制代码
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts

# 构建柱状图对象
bar = Bar()

# 添加X轴数据
bar.add_xaxis(["中国", "美国", "英国"])

# 添加Y轴数据,数值标签显示在右侧
bar.add_yaxis("GPD", [30, 20, 10], label_opts=LabelOpts(position="right"))

# 反转X轴与Y轴
bar.reversal_axis()

# 绘图
bar.render()

运行结果:

构建时间线柱状图

python 复制代码
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import LabelOpts

# 构建柱状图对象
bar1 = Bar()
# 添加X轴数据
bar1.add_xaxis(["中国", "美国", "英国"])
# 添加Y轴数据,数值标签显示在右侧
bar1.add_yaxis("GPD", [30, 20, 10], label_opts=LabelOpts(position="right"))
# 反转X轴与Y轴
bar1.reversal_axis()

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

bar3 = Bar()
bar3.add_xaxis(["中国", "美国", "英国"])
bar3.add_yaxis("GPD", [60, 70, 65], label_opts=LabelOpts(position="right"))
bar3.reversal_axis()

bar4 = Bar()
bar4.add_xaxis(["中国", "美国", "英国"])
bar4.add_yaxis("GPD", [77, 80, 90], label_opts=LabelOpts(position="right"))
bar4.reversal_axis()

# 创建时间线对象,设置主题为亮蓝色
timeline = Timeline({"theme": ThemeType.LIGHT})

# timeline对象添加bar柱状图
timeline.add(bar1, "2022")
timeline.add(bar2, "2023")
timeline.add(bar3, "2024")
timeline.add(bar4, "2025")

# 设置自动播放
timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_auto_play=True,
    is_loop_play=True
)
# 时间线绘图
timeline.render()

运行结果:

相关推荐
我的xiaodoujiao8 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 38--Allure 测试报告
python·学习·测试工具·pytest
Boilermaker19926 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
沈浩(种子思维作者)6 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
MM_MS7 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂7 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs7 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_997 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
io_T_T7 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python
古城小栈7 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
华研前沿标杆游学7 小时前
2026年走进洛阳格力工厂参观游学
python