在数据科学的世界里,数据可视化就像是理解和分析数据的“眼睛”。今天,我想和大家聊聊如何用 Taipy 这个超酷的框架,轻松搞定一个动态图表应用程序。无论你是刚入门的数据分析小白,还是已经有点经验的开发者,这个教程都会让你快速上手,轻松创建出炫酷的可视化效果。
什么是 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="网站访问量区域分布")
送你们一朵玫瑰花~
# 导入数学计算相关的模块,提供三角函数、数值转换等功能
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")
比心~
# 导入数学计算相关的模块
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")
第三步:运行应用程序
将上述代码保存后,在终端中运行以下命令:
taipy run main.py
# 或者直接python main.py
这将启动一个本地服务器,你可以在浏览器中访问应用程序,体验动态图表的魅力。
通过使用 Taipy,我们可以轻松创建交互式的 Web 应用程序,帮助我们更好地可视化和分析数据。无论是学术研究还是个人项目,Taipy 都是一个值得尝试的工具。
希望这个详细的教程能帮助你入门 Taipy,开始你的数据可视化之旅!如果你有任何问题或想法,欢迎在评论区留言讨论。