Py学习  »  Python

pygal,一个有趣的 Python 库!

python • 7 月前 • 230 次点击  

点击上方卡片关注我

设置星标 学习更多技能

Pygal是一个专注于生成SVG格式图表的Python数据可视化库,以其简洁优雅的API设计和美观的默认样式而著称。与传统的数据可视化库不同,Pygal生成的图表完全基于SVG矢量格式,这意味着图表在任何分辨率下都能保持清晰度,非常适合Web应用和高质量出版物。该库支持多种图表类型,包括线图、柱状图、饼图、散点图等,并且具有出色的交互性和响应式设计。

安装

1、基础安装

# 通过pip安装
pip install pygal

# 如需额外的地图功能,可安装完整版
pip install pygal[all]

2、验证安装

安装完成后,可以通过以下代码验证是否安装成功:

import pygal
print(pygal.__version__)

# 创建一个简单的图表进行测试
chart = pygal.Line()
chart.title = '测试图表'
chart.add('测试数据', [12345])
chart.render_to_file('test.svg')
print('安装成功!')

核心特性

  • SVG矢量输出:生成可无限缩放的高质量图表
  • 简洁API:直观易用的编程接口,学习成本低
  • 内置美观样式:提供多种预设主题和配色方案
  • Web友好:原生支持Web集成和交互功能
  • 响应式设计:图表可自适应不同屏幕尺寸
  • 丰富图表类型:支持线图、柱图、饼图、地图等多种类型
  • 高度可定制:支持样式、动画、工具提示等自定义配置

基本功能

1、线性图表

线性图表是展示数据趋势变化的经典方式,特别适用于时间序列数据的可视化,Pygal的线图功能支持多条数据线的绘制,可以轻松比较不同数据集的变化趋势。

以下示例展示了如何创建一个展示月度销售数据的线图:

import pygal

# 创建线性图表
line_chart = pygal.Line()
line_chart.title = '2023年月度销售趋势'
line_chart.x_labels = ['1月''2月''3月''4月''5月''6月']

# 添加数据系列
line_chart.add('产品A', [ 202530283540])
line_chart.add('产品B', [151822262430])

# 渲染到文件
line_chart.render_to_file('sales_trend.svg')

2、柱状图表

柱状图是比较不同类别数据的理想选择,能够直观地展示各项数据的大小关系,Pygal支持垂直和水平柱状图,可以根据数据特点和展示需求选择合适的样式。

以下示例创建了一个展示不同地区销售额的柱状图:

# 创建柱状图
bar_chart = pygal.Bar()
bar_chart.title = '各地区销售额对比'
bar_chart.x_labels = ['北京''上海''广州''深圳''杭州']

# 添加数据
bar_chart.add('2022年', [850920780890650])
bar_chart.add('2023年', [920980820950720])

# 保存图表
bar_chart.render_to_file('region_sales.svg')

3、饼图可视化

饼图专门用于展示数据的组成比例,能够清晰地显示各部分在整体中的占比情况,这种图表类型在展示市场份额、预算分配、用户构成等场景中表现出色。

以下示例展示了如何创建一个市场份额分析的饼图:

# 创建饼图
pie_chart = pygal.Pie()
pie_chart.title = '市场份额分析'

# 添加数据(自动计算百分比)
pie_chart.add('公司A'35.8)
pie_chart.add('公司B'28.2)
pie_chart.add('公司C'18.7)
pie_chart.add('公司D'12.5)
pie_chart.add('其他'4.8)

# 输出图表
pie_chart.render_to_file('market_share.svg')

高级功能

1、样式定制

Pygal提供了强大的样式定制功能,用户可以通过配置对象来调整图表的外观、颜色、字体等各种视觉元素。

from pygal.style import LightColorizedStyle

# 创建自定义样式的图表
custom_style = LightColorizedStyle(
    background='transparent',
    plot_background='transparent',
    foreground='#53E89B',
    foreground_strong='#53A0E8',
    foreground_subtle='#630C0D'
)

# 应用样式
chart = pygal.Line(style=custom_style)
chart.title = '自定义样式图表'
chart.add('数据系列', [1357911])
chart.render_to_file('custom_style.svg')

2、交互功能配置

Pygal生成的SVG图表天然支持Web交互功能,包括工具提示、点击事件等,通过配置选项,可以启用或定制这些交互特性,为用户提供更丰富的数据探索体验。

# 配置交互功能
config = pygal.Config()
config.show_legend = True
config.human_readable = True
config.show_dots = True
config.tooltip_border_radius = 10

# 创建交互图表
interactive_chart = pygal.Line(config)
interactive_chart.title = '交互式数据图表'
interactive_chart.add('销售额', [100150120180200160])
interactive_chart.render_to_file('interactive.svg')

总结

Pygal作为专业的SVG数据可视化库,凭借其简洁优雅的API设计和出色的图表质量,在Python可视化生态系统中占据了独特的地位。其矢量图形输出的天然优势使得生成的图表在任何场景下都能保持完美的视觉效果,特别适合Web应用和高质量出版需求。从基础的线图、柱图到复杂的交互式可视化,Pygal提供了完整的解决方案,同时保持了易学易用的特点。无论是快速原型开发、企业级报告制作还是学术研究发表,Pygal都能满足不同层次的可视化需求,是Python开发者工具箱中的重要组成部分。


AI时代,AI工具的成熟,让程序员有了以前不敢想象的能力。海外市场的广阔,给了我们更大的舞台。

如果你也在考虑新的出路,如果你也想尝试AI编程出海这个方向,欢迎加入我们。

扫码或搜索 257735 添加微信,发送暗号「美金」,了解详细信息。

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/186685