游乐游手机版
首页/科技数码/文章详情

pygal,一个神奇的 Python 库

时间:2025-12-15 20:27
Pygal 支持各种图表类型,包括折线图、条形图和雷达图。它适合那些想要以最少的配置快速、直接地创建静态图表的用户。 Pygal是一个开源的Python库,用于使用简单直观的语法创建SVG图表。它注

Pygal 支持各种图表类型,包括折线图、条形图和雷达图。它适合那些想要以最少的配置快速、直接地创建静态图表的用户。

Pygal是一个开源的Python库,用于使用简单直观的语法创建SVG图表。它注重易用性,旨在用最少的代码生成具有视觉吸引力的图表。

Pygal支持各种图表类型,包括折线图、条形图和雷达图。它适合那些想要以最少的配置快速、直接地创建静态图表的用户。

一、核心功能

SVG支持:生成的图表为矢量格式,可无损缩放,适合网页嵌入或高质量打印。丰富的图表类型:支持柱状图、折线图、饼图、散点图、雷达图、仪表盘图、树状图、金字塔图等 14 种以上图表类型。交互性:默认支持鼠标悬停显示数据标签、点击事件等,无需额外代码。个性化定制:可调整颜色、字体、轴标签、柱状图圆角、填充效果等。例如,通过Style类自定义配色

二、安装及基本用法

1. 库安装

通过pip进行安装:

pip install pygal

2. 柱状图

此示例中,我们将创建一个显示公司季度销售额的柱状图

import pygalbar = pygal.Bar()bar.title = "销售额统计"bar.x_labels = ['一季度', '二季度', '三季度', '四季度']bar.add('2024年', [100, 200, 300, 400])bar.render_to_file('sales.svg') # 保存为 SVG 文件

3. 饼图

在此示例中,我们首先定义两个列表citys和users,分别包含城市名称及其总人数百分比。 我们创建一个饼图并将图表的标题设置为 "关注人数"。

import pygal# Datacitys = ['北京', '上海', '广州', '长沙', '重庆']users = [30, 25, 20, 15, 10]pie_chart = pygal.Pie()pie_chart.title = "关注人数"for i in range(len(citys)): pie_chart.add(citys[i], users[i]) # Render the chartpie_chart.render_to_file('follow.svg')

4. 仪表盘图(SolidGauge)

gauge = pygal.SolidGauge(half_pie=False, inner_radius=0.7)gauge.title = "任务完成度"gauge.add('进度', 80)gauge.render_to_file('proccess.svg')

参数:

half_pie 是否为半圆inner_raidus 内部半径

5. 雷达图(Radar)

适用于多维数据对比,如学科能力分析:

radar = pygal.Radar(fill=True)radar.x_labels = ['语文', '数学', '英语', '物理', '化学']radar.add('学生A', [90, 85, 95, 80, 75])radar.add('学生B', [85, 90, 95, 85, 75])radar.render_to_file('radar.svg')

三、高级功能

1. 默认悬停与点击交互示例

Pygal生成的SVG图表默认支持 悬停显示数值,无需额外代码。点击事件需结合前端JavaScript实现,但悬停效果开箱即用:

import pygal# 创建柱状图bar = pygal.Bar()bar.title = "产品销量(悬停查看数值)"bar.x_labels = ['苹果', '香蕉', '橘子', '葡萄']bar.add('2024年', [120, 90, 150, 80])bar.render_to_file('hover_demo.svg') # 保存为 SVG# 打开文件查看效果(鼠标悬停在柱子上即可显示数值)import webbrowserwebbrowser.open('hover_demo.svg')

鼠标悬停在柱状图上方时,自动显示对应数值标签(如 120、90 等)

2. 自定义颜色样式(使用 Style 类)

通过pygal.style.Style自定义图表颜色、字体等样式:

from pygal import Barfrom pygal.style import Style# 自定义样式:深色背景 + 渐变柱状图custom_style = Style( background='#2d2d2d', # 背景色 plot_background='#2d2d2d', # 绘图区背景 foreground='#dddddd', # 标签文字颜色 foreground_strnotallow='#ffffff', # 强调文字颜色(如标题) colors=('#ff4444', '#44ff44', '#4444ff'), # 数据序列颜色 opacity=0.8, # 透明度 opacity_hover=1.0, # 悬停时透明度 transitinotallow='400ms ease-out'# 动画过渡效果)# 应用自定义样式bar = Bar(style=custom_style)bar.title = "自定义颜色样式示例"bar.x_labels = ['红色', '绿色', '蓝色']bar.add('系列1', [30, 50, 20])bar.add('系列2', [20, 40, 60])bar.render_to_file('custom_style.svg')

效果:

图表背景为深灰色 (#2d2d2d),文字为浅灰色。数据系列颜色依次为红、绿、蓝,悬停时透明度增强。保存后打开 SVG 文件查看完整效果。

3. 动态修改单个数据点颜色

若需为特定数据点单独着色,可传递颜色数组:

bar = pygal.Bar()bar.add('销量', [ {'value': 120, 'color': '#FF0000'}, # 红色 {'value': 90, 'color': '#00FF00'}, # 绿色 {'value': 150, 'color': '#0000FF'}, # 蓝色 {'value': 80, 'color': '#FFD700'} # 金色])bar.render_to_file('custom_color_points.svg')

四、应用场景

数据分析:趋势分析(折线图)、分布对比(柱状图)。教育领域:学生成绩雷达图、学科能力分布。商业报告:销售额堆叠柱状图、市场份额饼图。科研可视化:实验数据散点图、多维数据雷达图。实时仪表盘:结合Flask/Django嵌入网页,动态更新数据。
来源:https://www.51cto.com/article/817641.html
上一篇微信鸿蒙版更新上线,新增多项实用功能 下一篇国内AI公司研发新一代模型,挑战国际前沿技术
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
宫本茂亲签3DS XL拍卖价破两万美元
科技数码 · 2026-05-29

宫本茂亲签3DS XL拍卖价破两万美元

今天来说一件挺有意思的事:2015年任天堂世界锦标赛冠军约翰·戈德堡,近日将他当年夺冠时赢得的宫本茂亲笔签名版3DS XL掌机放上了拍卖平台。截至2026年5月29日,这台签名掌机的竞拍价已突破两万美元,并且价格还在持续攀升。戈德堡在社交媒体上发布声明表示,经过相当长时间的慎重考虑,他决定将这台对自

七彩虹隐星P16 Pro游戏本新配置仅售7799元
科技数码 · 2026-05-29

七彩虹隐星P16 Pro游戏本新配置仅售7799元

七彩虹近期推出隐星P16Pro游戏本新配置,售价7799元。其搭载酷睿i9-13900HX处理器与RTX5060显卡,配备16英寸2 5K高刷电竞屏及高效散热系统。存储组合为16GB内存与1TB固态硬盘,支持后续扩展。该配置主打高性能性价比,适合预算有限但追求强劲性能的游戏玩家与轻度创作者。

苹果iPhone Hikawa握把支架448元重新上架
科技数码 · 2026-05-29

苹果iPhone Hikawa握把支架448元重新上架

苹果公司重新上架了与艺术家贝利·桧川及PopSockets合作设计的iPhone专用握把支架。该配件采用磁吸设计,兼具握持与支架功能,旨在通过人性化设计降低握持负担,并提供三种配色可选,售价448元。

苹果体育应用扩展至170市场 为2026世界杯引入对阵图
科技数码 · 2026-05-29

苹果体育应用扩展至170市场 为2026世界杯引入对阵图

苹果体育应用新增覆盖90多个国家和地区,全球可用市场总数超过170个。为迎接2026年世界杯,应用加入了完整的赛程对阵图和可视化阵型卡片,方便用户追踪赛事与战术。同时,应用支持实时活动功能,可将比分固定在锁屏或表盘,并新增一键跳转至新闻的入口。目前该应用仍仅限iPhone用户使用。

小米史上最强国产巅峰芯片玄戒O3 6月台积电3nm投产
科技数码 · 2026-05-29

小米史上最强国产巅峰芯片玄戒O3 6月台积电3nm投产

据博主爆料,小米下一代自研玄戒芯片计划于今年6月正式进入量产阶段,此次将采用台积电3nm工艺。初代玄戒O1累计出货量已突破100万颗,量产验证十分扎实。新一代芯片的产能将显著提升,这意味着供货问题基本得到解决。 根据现有曝光信息,这颗迭代芯片极有可能命名为玄戒O3,首发搭载机型预计为小米MIX Fo