在数据科学的世界里,数据可视化就像是理解和分析数据的“眼睛”。今天,我想和大家聊聊如何用 Taipy 这个超酷的框架,轻松搞定一个动态图表应用程序。无论你是刚入门的数据分析小白,还是已经有点经验的开发者,这个教程都会让你快速上手,轻松创建出炫酷的可视化效果。

0.gif

什么是 Taipy?

Taipy 是一个专门用来构建数据驱动应用程序的框架,特别适合那些需要图形用户界面的项目。你可以用简单的 Python 代码来创建复杂的应用,而不需要花太多时间去研究前端开发的那些繁琐细节。Taipy 的设计理念就是让数据可视化变得简单又高效,真的是个不错的选择!

安装 Taipy

在开始之前,请确保你的计算机上安装了 Python(版本 3.9 或更高)和 pip。接下来,在终端或命令提示符中运行以下命令以安装 Taipy:

pip install taipy

如果你在安装过程中遇到问题,可以参考 官方安装页面

创建你的第一个动态图表应用程序

第一步:设置项目结构

首先,创建一个新的文件夹来存放你的项目文件。然后,在该文件夹中创建一个名为 main.py​ 的 Python 文件。

第二步:编写代码

在 main.py​ 文件中,输入以下代码(这里用我的网站数据画两个饼图~):

from taipy.gui import Gui

# 定义一个包含地区名称的列表
countries = ["华东", "华南", "华北", "西南", "西北", "东北", "华中"]

# 定义一个数据列表,包含两个字典,分别表示 PC 端和移动端的访问量占比数据
data = [
    {
        # 2024年PC端访问量占比数据
        "values": [30.5, 22.1, 16.8, 11.2, 7.9, 6.2, 5.3],  # 各地区的访问量占比
        "labels": countries,  # 各地区的名称
    },
    {
        # 2024年移动端访问量占比数据
        "values": [32.4, 20.8, 15.3, 12.6, 8.1, 5.9, 4.9],  # 各地区的访问量占比
        "labels": countries,  # 各地区的名称
    },
]

# 定义一个选项列表,用于配置饼图的显示
options = [
    # 第一个饼图的配置
    {
        # 悬停时显示标签值
        "hoverinfo": "label",
        # 中心留空形成环形图
        "hole": 0.4,
        # 放置在左侧
        "domain": {"column": 0},
    },
    # 第二个饼图的配置
    {
        # 悬停时显示标签值
        "hoverinfo": "label",
        # 中心留空形成环形图
        "hole": 0.4,
        # 放置在右侧
        "domain": {"column": 1},
    },
]

# 定义图表的布局
layout = {
    # 图表标题
    "title": "2024年 lllyy.com 网站访问量区域分布",
    # 1x2网格显示
    "grid": {"rows": 1, "columns": 2},
    "annotations": [
        # 第一个图的注释
        {
            "text": "PC端访问占比",  # 注释文本
            "font": {"size": 20},  # 字体大小
            # 隐藏箭头
            "showarrow": False,
            # 移到图表中心
            "x": 0.18,
            "y": 0.5,
        },
        # 第二个图的注释
        {
            "text": "移动端访问占比",  # 注释文本
            "font": {"size": 20},  # 字体大小
            "showarrow": False,  # 隐藏箭头
            # 移到图表中心
            "x": 0.81,
            "y": 0.5,
        },
    ],
    "showlegend": False,  # 不显示图例
}

# 定义页面内容,使用 Taipy 的 Markdown 语法创建饼图
page = """
<|{data}|chart|type=pie|x[1]=0/values|x[2]=1/values|options={options}|layout={layout}|>
"""

# 主程序入口
if __name__ == "__main__":
    # 创建并运行 GUI 应用程序,设置窗口标题
    Gui(page).run(title="网站访问量区域分布")

Snipaste_2024-12-03_20-47-15.png

送你们一朵玫瑰花~

# 导入数学计算相关的模块,提供三角函数、数值转换等功能
import math

# 导入Taipy GUI模块,用于创建图形用户界面
from taipy.gui import Gui


# 创建玫瑰花形状的半径数组函数
# n_petals参数控制花瓣的数量
def create_rose(n_petals):
    # 使用列表推导式计算每个角度对应的半径值
    # 通过余弦函数创建周期性的波动,形成花瓣形状
    return [math.cos(math.radians(n_petals * angle)) for angle in theta]


# 创建角度范围,从0到359度,每1度一个数据点
theta = range(0, 360)

# 创建数据字典,包含角度和三种不同花瓣数量的玫瑰图数据
data = {"theta": theta, "r1": create_rose(2), "r2": create_rose(3), "r3": create_rose(4)}

# 定义要在同一图表中显示的三条曲线的数据键名
r = ["r1", "r2", "r3"]

# 定义图表布局配置
layout = {
    # 隐藏图例显示
    "showlegend": False,
    # 配置极坐标系相关设置
    "polar": {
        # 隐藏角度轴的显示
        "angularaxis": {"visible": False},
        # 隐藏径向轴的显示
        "radialaxis": {"visible": False},
    },
}

# 定义页面模板,使用极坐标散点图展示数据
# 设置图表类型为极坐标散点图,使用线条模式连接数据点
page = """
<|{data}|chart|type=scatterpolar|mode=lines|r={r}|theta=theta|layout={layout}|>
"""

# 主程序入口
if __name__ == "__main__":
    Gui(page).run(title="Chart - Polar - Multiple")

Snipaste_2024-12-03_20-46-46.png

比心~

# 导入数学计算相关的模块
import math

# 导入Taipy GUI模块
from taipy.gui import Gui


# 定义一个参数方程来绘制心形图案(来源于Wolfram Mathworld)
def draw_heart(angle):
    # 将角度转换为弧度
    a = math.radians(angle)
    # 计算正弦值
    sa = math.sin(a)
    # 返回心形方程的计算结果
    return 2 - 2 * sa + sa * (math.sqrt(math.fabs(math.cos(a))) / (sa + 1.4))


# 创建0到360度的角度范围,每1度一个数据点
theta = range(0, 360)

# 定义数据字典
data = {
    # 创建心形图案的半径数组
    "r": [draw_heart(angle) for angle in theta],
    # 对应的角度数组
    "theta": theta,
}

# 设置填充选项,toself表示填充到自身
options = {"fill": "toself"}

# 定义图表布局
layout = {
    # 隐藏图例
    "showlegend": False,
    # 极坐标系设置
    "polar": {
        # 隐藏角度轴
        "angularaxis": {"visible": False},
        # 隐藏径向轴
        "radialaxis": {"visible": False},
    },
}

# 定义页面模板,使用极坐标散点图展示数据
page = """
<|{data}|chart|type=scatterpolar|mode=none|layout={layout}|options={options}|>
"""

# 主程序入口
if __name__ == "__main__":
    # 创建并运行GUI,设置窗口标题
    Gui(page).run(title="Chart - Polar - Area")

Snipaste_2024-12-03_20-46-06.png

第三步:运行应用程序

将上述代码保存后,在终端中运行以下命令:

taipy run main.py

# 或者直接python main.py

这将启动一个本地服务器,你可以在浏览器中访问应用程序,体验动态图表的魅力。

通过使用 Taipy,我们可以轻松创建交互式的 Web 应用程序,帮助我们更好地可视化和分析数据。无论是学术研究还是个人项目,Taipy 都是一个值得尝试的工具。

希望这个详细的教程能帮助你入门 Taipy,开始你的数据可视化之旅!如果你有任何问题或想法,欢迎在评论区留言讨论。