探索超酷的 Python 可视化:Pygal!

今天介绍一个令人惊艳的Python库 – Pygal,它能够用极简的语法生成交互式的SVG图表。从条形图到饼图再到直方图,Pygal支持多种图表类型,适用于快速创建漂亮的静态图表。在这里,我们简单了解了Pygal的安装以及创建条形图、饼图、直方图和仪表盘的基本过程。 Pygal的直观API和支持交互式绘图的特性使其成为数据可视化的绝佳选择。
https://github.com/Kozea/pygal

图片[1]-探索超酷的 Python 可视化:Pygal!-山海云端论坛


优点:

  1. 直观的 API
  2. 交互式图表
  3. SVG 输出
  4. 多种图表类型
  5. 简单的主题
  6. Python 集成

初体验:

安装:

<code>pip install pygal</code>

创建条形图:

<code>import pygal # 创建条形图 bar_chart = pygal.Bar() # 添加数据 bar_chart.add('Series 1', [10, 15, 20, 25, 30]) bar_chart.add('Series 2', [5, 10, 15, 20, 25]) bar_chart.add('Series 3', [20, 25, 30, 35, 40]) # 设置标题和标签 bar_chart.title = 'Monthly Sales' bar_chart.x_labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May'] bar_chart.y_title = 'Sales (in thousands)' # 设置图例位置 bar_chart.legend_at_bottom = True # 渲染为 SVG 文件 bar_chart.render_to_file('bar_chart.svg')</code>
图片[2]-探索超酷的 Python 可视化:Pygal!-山海云端论坛

创建饼图:

<code>import pygal # 数据 flavors = ['Vanilla', 'Chocolate', 'Strawberry', 'Mint', 'Cookie Dough'] popularity = [30, 25, 20, 15, 10] # 创建饼图 pie_chart = pygal.Pie() pie_chart.title = 'Ice Cream Flavor Popularity' # 添加数据 for i in range(len(flavors)): pie_chart.add(flavors[i], popularity[i]) # 渲染为 SVG 文件 pie_chart.render_to_file('pie_chart.svg')</code>
图片[3]-探索超酷的 Python 可视化:Pygal!-山海云端论坛

创建直方图:

<code>import pygal from collections import Counter # 数据 ages = [22, 25, 32, 45, 47, 48, 52, 53, 56, 62, 62, 63, 65, 68, 69, 72, 73, 74, 78, 81] # 创建直方图 histogram_chart = pygal.Histogram() histogram_chart.title = 'Age Distribution' histogram_chart.x_title = 'Age' histogram_chart.y_title = 'Frequency' # 将数据分组 bins = range(20, 90, 10) bin_counts = Counter((age // 10) * 10 for age in ages) # 添加数据 for bin in bins: count = bin_counts[bin] histogram_chart.add(f'{bin}-{bin+9}', [(bin, bin+9, count)]) # 渲染为 SVG 文件 histogram_chart.render_to_file('histogram_chart.svg')</code>
图片[4]-探索超酷的 Python 可视化:Pygal!-山海云端论坛

创建仪表盘:

<code>import pygal import pandas as pd # 数据 data = pd.read_csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv") mean_per_state = data.groupby('state')['cases'].mean() # 创建仪表盘 gauge = pygal.SolidGauge(inner_radius=0.70) [gauge.add(x[0], [{"value" : x[1] * 100}] ) for x in mean_per_state.head().iteritems()] # 显示仪表盘 display(HTML(base_html.format(rendered_chart=gauge.render(is_unicode=True))))</code>
图片[5]-探索超酷的 Python 可视化:Pygal!-山海云端论坛
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容