5行代碼搞定14種常見圖的python可視化庫,還自帶16種優(yōu)美主題,真是太喜歡了
有時(shí)候我們做數(shù)據(jù)可視化并不需要特別復(fù)雜的功能,僅僅是想把簡單的數(shù)據(jù)用圖形展示出來
今天就給大家介紹一種非常適合新手的python可視化庫--pygal

pygal比較小眾,專注于SVG圖,擅長交互,最主要的是它能用非常少的代碼就可畫出非常漂亮的圖形
pygal能繪制Line(折線圖)、Bar(柱狀圖)、Histogram(直方圖)、Pie(餅圖)、Radar(雷達(dá)圖)、Funnel(漏斗圖)、Gauge(儀表盤圖)等14種常見可視化圖
而且自帶16種漂亮的主題,色調(diào)相當(dāng)柔和,感覺很適合我這樣細(xì)膩溫柔的人
pygal的安裝比較簡單,直接在命令行輸入以下代碼即可:
pip install pygal
下面,我們依托某宿舍2020年各月生活費(fèi)花銷情況為例,對(duì)pygal繪制方法進(jìn)行介紹
首先pandas讀取數(shù)據(jù):
import pandas as pd
data=pd.read_excel('生活費(fèi)開銷.xlsx')

我想在jupyter上直接顯示pygal的圖形,需要?jiǎng)?chuàng)建html的基礎(chǔ)模板,你們可以拿去直接用:
import pygal
#設(shè)置pygal與jupyter notebook交互
from IPython.display import display, HTML
base_html = """
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://kozea.github.com/pygal.js/javascripts/svg.jquery.js"></script>
<script type="text/javascript" src="https://kozea.github.io/pygal.js/2.0.x/pygal-tooltips.min.js""></script>
</head>
<body>
<figure>
{rendered_chart}
</figure>
</body>
</html>
"""
下面進(jìn)入主題:
1.pygal繪制折線圖(主題:DefaultStyle)
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
line_chart = pygal.Line(style=DefaultStyle)
line_chart.title = '520寢室2020年生活費(fèi)花銷情況'
line_chart.x_labels = label
for i in people:
line_chart.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#圖片渲染
2.pygal繪制柱狀圖(主題:DarkStyle、NeonStyle)
繪制豎狀柱狀圖
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
line_chart = pygal.Bar(style=DarkStyle)
line_chart.title = '520寢室2020年生活費(fèi)花銷情況'
line_chart.x_labels = label
for i in people:
line_chart.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#圖片渲染

繪制橫狀柱狀圖
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
line_chart = pygal.HorizontalBar(style=NeonStyle)
line_chart.title = '520寢室2020年生活費(fèi)花銷情況'
line_chart.x_labels = label
for i in people:
line_chart.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#圖片渲染
3.pygal繪制餅圖(主題:DarkSolarizedStyle)
普通餅狀圖
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
line_chart = pygal.Pie(style=DarkSolarizedStyle)
line_chart.title = '520寢室2020年1月生活費(fèi)花銷情況'
line_chart.x_labels = label
for i in people:
line_chart.add(i, data[(data.人員==i)&(data.月份=='1月')]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#圖片渲染

圓環(huán)圖
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
pie_chart = pygal.Pie(inner_radius=0.45,style=LightSolarizedStyle)
pie_chart.title = '520寢室2020年1月生活費(fèi)花銷情況'
for i in people:
pie_chart.add(i, data[(data.人員==i)&(data.月份=='1月')]['花銷'].values.tolist()[0])
HTML(base_html.format(rendered_chart=pie_chart.render(is_unicode=True)))#圖片渲染
4.pygal繪制雷達(dá)圖(主題:LightStyle)
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
radar_chart = pygal.Radar(style=LightStyle)
radar_chart.title = '520寢室2020年生活費(fèi)花銷情況'
radar_chart.x_labels = label
for i in people:
radar_chart.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=radar_chart.render(is_unicode=True)))#圖片渲染

5.pygal繪制箱形圖(主題:CleanStyle)
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
box_plot = pygal.Box(style=CleanStyle)
box_plot.title = '520寢室2020年生活費(fèi)花銷情況'
for i in people:
box_plot.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=box_plot.render(is_unicode=True)))#圖片渲染

6.pygal繪制散點(diǎn)圖(主題:RedBlueStyle)
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
dot_chart = pygal.Dot(x_label_rotation=30,style=RedBlueStyle)
dot_chart.title = '520寢室2020年生活費(fèi)花銷情況'
dot_chart.x_labels=label
for i in people:
dot_chart.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=dot_chart.render(is_unicode=True)))#圖片渲染
7.pygal繪制漏斗圖(主題:DarkColorizedStyle)
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
funnel_chart = pygal.Funnel(style=DarkColorizedStyle)
funnel_chart.title = '520寢室2020年生活費(fèi)花銷情況'
funnel_chart.x_labels=label
for i in people:
funnel_chart.add(i, data[data.人員==i]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=funnel_chart.render(is_unicode=True)))#圖片渲染

8.pygal繪制儀表盤圖(主題:LightColorizedStyle)
from pygal.style import *
people=data['人員'].unique()
label=data['月份'].unique()
gauge_chart = pygal.Gauge(human_readable=True,style=LightColorizedStyle)
gauge_chart.title = '520寢室2020年1月生活費(fèi)花銷情況'
gauge_chart.range = [0, 5000]
for i in people:
gauge_chart.add(i, data[(data.人員==i)&(data.月份=='1月')]['花銷'].values.tolist())
HTML(base_html.format(rendered_chart=gauge_chart.render(is_unicode=True)))#圖片渲染

細(xì)心的讀者可以發(fā)現(xiàn),pygal繪制圖形的套路基本都一樣,其核心的代碼也就5行代碼,可以說是一招打遍天下無敵手。
文中代碼、數(shù)據(jù)以及pygal學(xué)習(xí)教程已打包完畢,請(qǐng)掃描下方二維碼在后臺(tái)回復(fù)“pygal”獲取
評(píng)論
圖片
表情
