【PaddlePaddle】学习体验一 —— Pyecharts 动态可视化 (饼图 Pie)

前言

近期,百度 AIStudio 免费开放了一门课程 —— 《深度学习7日入门-CV疫情特辑》,有一说一,确实良心不仅开放课程资料和,还能免费使用 GPU。做好了被各路神仙知识打击和技术鞭笞的准备,我好奇地去了解了一下,在气绝之前想到知识点还没整理,于是预备先从第一天的内容开始。

Pyecharts 是一个用于生成 Echarts 图表的类库,由 Python 实现接口,其追根溯源可以到百度曾开源的一个数据可视化 JS 库Echarts 。与我们平常用的 Matplotlib 不同,Echarts 图表不仅美观靓丽,而且是动态可交互的,API 调用也很方便,几行代码就能实现图形渲染 ... 如此美丽的绘图工具自是令人喜爱。然而,秉承实事求是的校训,Pyecharts 也有缺点,比如官方文档目录置于左侧栏,未全汉化且标题无法折叠,查找不便;许多 API 无参数说明,仅给出实例,甚至无注释 ...... 当然,事物的发展是前进性和曲折性的统一,有压力才有动力,毕竟是开源的。

即便如此,Pyecharts 的效果依旧令人感到惊艳,值得去了解和尝试,本文将简要展示其中的一种——饼图(Pie)。


一、安装

pip 安装,在命令行输入:

pip install pyecharts

若太慢,就清华源安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

二、示例

2.1 数据准备

首先自定义一些数据用于展示:

## 导包 —— 饼状图 Pie
import pyecharts.options as opts
from pyecharts.charts import Pie

## 自定义示例数据
# 月份
month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
# 平均温度
temp = [1.8, 2.5, 3.8, 7.5, 9.6, 15.4, 25.0, 29.4, 28.3, 11.3, 5.4, 1.9]
# 平均降水量
rain = [0.1, 4.6, 5.8, 14.2, 16.3, 25.3, 34.5, 45.2, 41.0, 16.3, 9.9, 4.1]

# 数据打包
data_pair_temp = [list(data) for data in zip(month, temp)]  # month 相当于自变量, temp 相当于因变量
data_pari_rain = [list(data) for data in zip(month, rain)]  # month 相当于自变量, rain 相当于因变量

# 数据整理(没必要)
#data_pair.sort(key=lambda x: x[1])

注意数据需要打包成嵌套列表的形式,例如:

>>> data_pair_temp
[['Jan', 1.8],
 ['Feb', 2.5],
 ['Mar', 3.8],
 ['Apr', 7.5],
 ['May', 9.6],
 ['Jun', 15.4],
 ['Jul', 25.0],
 ['Aug', 29.4],
 ['Sep', 28.3],
 ['Oct', 11.3],
 ['Nov', 5.4],
 ['Dec', 1.9]]

2.2 基本图形

 通过实例化 Pie 对象、调用 add() 添加基本参数、调用 set_global_opts () 设置全局参数、调用 set_series_opts () 设置系列参数、调用 render() 渲染图像文件这些基本步骤,就可以绘制出一个简单的图形。以下绘制了一个 basic 饼图:

# basic
# 可以赋予对象,也可不必,因为渲染是通过  .render() 语句完成的
p = (
        Pie()  # 实例化
        .add(
            series_name="平均温度",  # 系列名称
            data_pair=data_pair_temp,# 馈入数据
            radius="35%",            # 饼图半径比例
            center=["50%", "50%"],   # 饼图中心坐标
            label_opts=opts.LabelOpts(is_show=False, position="center"),  # 标签位置
        )
        .set_global_opts(legend_opts=opts.LegendOpts(is_show=False))      # 不显示图示
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 标签颜色
    .render("Pie_basic.html")  # 渲染文件及其名称
    #.render_notebook()
)

注意,保存的是 html 文件,将其放在浏览器即可打开:

2.3 扩展设置

事实上,可设置的选项很丰富,虽然不能一一示范,但可以简要展示更多参数设置。以下绘制了一个 rosetype 的饼图:

## rosetype
# 可以赋予对象,也可不必,因为渲染是通过  .render() 语句完成的
(
    # 实例化 Pie 对象
    Pie(init_opts=opts.InitOpts(width="800px", height="600px", bg_color="#2c343c"))  # 画布尺寸 + 背景颜色
    .add(  ## 图形设置
        series_name="平均降水",    # 系列名称
        data_pair=data_pari_rain, # 馈入数据
        rosetype="radius",        # 饼图类型
        radius="35%",             # 饼图半径比例
        center=["50%", "50%"],    # 饼图中心坐标
        label_opts=opts.LabelOpts(is_show=False, position="center"),  # 标签显示与位置设置
    )
    .set_global_opts(  ## 全局设置
        title_opts=opts.TitleOpts(
            title="全年气候模拟数据",    # 标题
            pos_left="center",         # 标题水平位置
            pos_top="50",              # 标题与画布顶端距离
            title_textstyle_opts=opts.TextStyleOpts(color="#fff"),  # 标题颜色
        ),
        legend_opts=opts.LegendOpts(is_show=False),  # 不显示图示
    )
    .set_series_opts(  ## 系列设置
        label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.1)"),  # 标签颜色 (RGB+透明度)
    )
    .render("Pie_rosetype.html")
)


参考文献:

官方文档之饼图 Pie: http://gallery.pyecharts.org/#/Pie/README
 
发布了14 篇原创文章 · 获赞 12 · 访问量 719

猜你喜欢

转载自blog.csdn.net/qq_39478403/article/details/105359473