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()

运行结果:

相关推荐
徐同保2 小时前
n8n+GPT-4o一次解析多张图片
开发语言·前端·javascript
春日见2 小时前
如何跑通,吃透一个开源项目?
linux·运维·开发语言·数码相机·matlab
技术净胜2 小时前
MATLAB数据清洗流程包含:缺失值处理/异常值检测/重复值删除
开发语言·matlab
SmoothSailingT2 小时前
C#——textBox控件(1)
开发语言·c#
Lvan的前端笔记2 小时前
python:用 dotenv 管理环境变量&生产环境怎么管理环境变量
网络·数据库·python
Java Fans2 小时前
用PyQt打造带动画、碰撞检测和键盘控制的小游戏
python·计算机外设·pyqt
深蓝海拓2 小时前
PySide6从0开始学习的笔记(十一) QSS 属性选择器
笔记·python·qt·学习·pyqt
悦悦子a啊2 小时前
使用 Java 集合类中的 LinkedList 模拟栈以此判断字符串是否是回文
java·开发语言
AAA_bo12 小时前
liunx安装canda、python、nodejs、git,随后部署私有网页内容提取工具--JinaReader全攻略
linux·python·ubuntu·typescript·aigc·python3.11·jina