Linux中國

使用 Pygal 在 Python 中設置數據圖的樣式

Python 有很多可以將數據可視化的庫。其中一個互動性較強的庫是 Pygal,我認為這個庫適合喜歡漂亮事物的人。它可以生成用戶可以與之交互的漂亮的 SVG(可縮放矢量圖形)文件。SVG 是互動式圖形的標準格式,僅使用幾行 Python 就可以帶來豐富的用戶體驗。

使用 Pygal 進行時尚的 Python 繪圖

在本文中,我們要重新創建多柱狀圖,用來表示 1966 年至 2020 年英國大選的結果:

![Pygal plot](/data/attachment/album/202006/30/120757d0mm10o15vc3mx05.png "Pygal plot")

在繼續之前,請注意你可能需要調整 Python 環境以使此代碼運行,包括:

  • 運行最新版本的 Python(LinuxMacWindows 的說明)
  • 確認你運行的是與這些庫兼容的 Python 版本

數據可在線獲得,並可使用 pandas 導入:

import pandas as pd
df = pd.read_csv('https://anvil.works/blog/img/plotting-in-python/uk-election-results.csv')

現在我們可以繼續進行了。。數據如下所示:

        year  conservative  labour  liberal  others
0       1966           253     364       12       1
1       1970           330     287        6       7
2   Feb 1974           297     301       14      18
..       ...           ...     ...      ...     ...
12      2015           330     232        8      80
13      2017           317     262       12      59
14      2019           365     202       11      72

在 Pygal 中進行繪製會以一種易於閱讀的方式顯示。首先,我們以一種簡化柱狀圖定義的方式定義樣式對象。然後我們將自定義樣式以及其他元數據傳遞給 Bar 對象:

import pygal
from pygal.style import Style

custom_style = Style(
    colors=('#0343df', '#e50000', '#ffff14', '#929591'),
    font_family='Roboto,Helvetica,Arial,sans-serif',
    background='transparent',
    label_font_size=14,
)

c = pygal.Bar(
    title="UK Election Results",
    style=custom_style,
    y_title='Seats',
    width=1200,
    x_label_rotation=270,
)

然後,我們將數據添加到 Bar 對象中:

c.add('Conservative', df['conservative'])
c.add('Labour', df['labour'])
c.add('Liberal', df['liberal'])
c.add('Others', df['others'])

c.x_labels = df['year']

最後,我們將圖另存為 SVG 文件:

c.render_to_file('pygal.svg')

結果是一個互動式 SVG 圖,你可以在此 gif 中看到:

![The Python pygal library can generate rich SVG files as seen here](/data/attachment/album/202006/30/120851h5a1f2jafj1ajfh6.gif "The Python pygal library can generate rich SVG files as seen here")

精美簡單,並且效果漂亮。

總結

Python 中的某些繪圖工具需要非常詳細地構建每個對象,而 Pygal 從一開始就為你提供這些。如果你手邊有數據並且想做一個乾淨、漂亮、簡單的互動式圖表,請嘗試一下 Pygal。

via: https://opensource.com/article/20/6/pygal-python

作者:Shaun Taylor-Morgan 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國