一個有趣手繪風格的Python繪相簿使用

今天無意間刷到了一個跟Python視覺化相關的頭條,就點進去看看,這是一位作者編寫的手繪風格的繪圖工具,對視覺化工作一直都是比較感興趣的,所以這裡就想直接上手使用一下。

GitHub地址在這裡。首頁截圖如下:

一個有趣手繪風格的Python繪相簿使用

最下方也給出了安裝方式,應該是以Python3為基礎編寫的,所以Python2應該是安裝不了的,所以這裡我本地使用的話也是基於Python3來進行安裝的,安裝截圖如下:

一個有趣手繪風格的Python繪相簿使用

成功安裝後就可以使用了,這裡我藉助的是jupyter-notebook來進行實踐的,原因是這個庫本身也是會有與web互動的地方的,所以我覺得jupyter可能更合適。下面是具體的實踐:

【柱狀圖】

一個有趣手繪風格的Python繪相簿使用

【折線圖】

一個有趣手繪風格的Python繪相簿使用

【柱狀圖+折線圖】

當前,也是可以一張圖裡面同時繪製柱狀圖和折線圖或者其他型別的影象的,這裡簡單舉例:

from cutecharts。charts import Bar, Linefrom cutecharts。faker import Fakerfrom cutecharts。components import Page def bar_base() -> Bar: chart = Bar(“手繪風格的柱狀圖”) chart。set_options(labels=Faker。choose(), x_label=“類別”, y_label=“數量”) chart。add_series(“series-A”, Faker。values()) return chart def line_base() -> Line: chart = Line(“手繪風格的折線統計圖”) chart。set_options(labels=Faker。choose(), x_label=“種類”, y_label=“數量”) chart。add_series(“series-A”, Faker。values()) chart。add_series(“series-B”, Faker。values()) return chart page = Page()page。add(bar_base(),line_base())page。render(‘both。html’)

由於截圖比較大,這裡採用儲存本地檔案的形式,結果如下:

一個有趣手繪風格的Python繪相簿使用

這裡也可以對線條或者圖形的顏色進行調整,如下:

一個有趣手繪風格的Python繪相簿使用

【餅圖】

一個有趣手繪風格的Python繪相簿使用

可以修改字型,如下:

一個有趣手繪風格的Python繪相簿使用

一個有趣手繪風格的Python繪相簿使用

【雷達圖】

一個有趣手繪風格的Python繪相簿使用

【散點圖】

一個有趣手繪風格的Python繪相簿使用

也可以調整散點的大小程度。

一個有趣手繪風格的Python繪相簿使用

也可以將散點連成線,這個我覺得平時使用到的場景比較少。

一個有趣手繪風格的Python繪相簿使用

最後貼出來完整的程式碼:

# -*- coding: utf-8 -*-# ——-# jupyter:# jupytext:# formats: ipynb,py:light# text_representation:# extension: 。py# format_name: light# format_version: ‘1。4’# jupytext_version: 1。1。6# kernelspec:# display_name: python36# language: python# name: python36# ——- # +from cutecharts。charts import Bar, Linefrom cutecharts。faker import Fakerfrom cutecharts。components import Page def bar_base() -> Bar: chart = Bar(“手繪風格的柱狀圖”) chart。set_options(labels=Faker。choose(), x_label=“類別”, y_label=“數量”) chart。add_series(“series-A”, Faker。values()) return chart page = Page()page。add(bar_base())page。render_notebook() # +from cutecharts。charts import Bar, Linefrom cutecharts。faker import Fakerfrom cutecharts。components import Page def line_base() -> Line: chart = Line(“手繪風格的折線統計圖”) chart。set_options(labels=Faker。choose(), x_label=“種類”, y_label=“數量”) chart。add_series(“series-A”, Faker。values()) chart。add_series(“series-B”, Faker。values()) return chart page = Page()page。add(line_base())page。render_notebook() # +from cutecharts。charts import Bar, Linefrom cutecharts。faker import Fakerfrom cutecharts。components import Page def bar_base() -> Bar: chart = Bar(“手繪風格的柱狀圖”) chart。set_options(labels=Faker。choose(), x_label=“類別”, y_label=“數量”) chart。add_series(“series-A”, Faker。values()) return chart def line_base() -> Line: chart = Line(“手繪風格的折線統計圖”) chart。set_options(labels=Faker。choose(), x_label=“種類”, y_label=“數量”) chart。add_series(“series-A”, Faker。values()) chart。add_series(“series-B”, Faker。values()) return chart page = Page()page。add(bar_base(),line_base())page。render(‘both。html’) # +def line_tickcount_colors(): chart = Line(“Line-調整顏色”) chart。set_options(labels=Faker。choose(), colors=Faker。colors, y_tick_count=8) chart。add_series(“series-A”, Faker。values()) chart。add_series(“series-B”, Faker。values()) return chart line_tickcount_colors()。render_notebook() # +from cutecharts。charts import Piefrom cutecharts。components import Pagefrom cutecharts。faker import Faker def pie_base() -> Pie: chart = Pie(“手繪風格餅圖”) chart。set_options(labels=Faker。choose()) chart。add_series(Faker。values()) return chart pie_base()。render_notebook() # - def pie_legend_font(): chart = Pie(“Pie-Legend”) chart。set_options( labels=Faker。choose(), legend_pos=“downLeft”, font_family=‘“Times New Roman”,Georgia,Serif;’, ) chart。add_series(Faker。values()) return chartpie_legend_font()。render_notebook() def pie_radius(): chart = Pie(“Pie-Radius”) chart。set_options( labels=Faker。choose(), inner_radius=0, ) chart。add_series(Faker。values()) return chartpie_radius()。render_notebook() # +from cutecharts。charts import Radarfrom cutecharts。components import Pagefrom cutecharts。faker import Faker def radar_base() -> Radar: chart = Radar(“手繪風格雷達圖”) chart。set_options(labels=Faker。choose()) chart。add_series(“series-A”, Faker。values()) chart。add_series(“series-B”, Faker。values()) return chart radar_base()。render_notebook() # +from cutecharts。charts import Scatterfrom cutecharts。components import Pagefrom cutecharts。faker import Faker def scatter_base() -> Scatter: chart = Scatter(“手繪風格散點圖”) chart。set_options(x_label=“時間”, y_label=“數量”) chart。add_series(“series-A”, [(z[0], z[1]) for z in zip(Faker。values(), Faker。values())]) chart。add_series(“series-B”, [(z[0], z[1]) for z in zip(Faker。values(), Faker。values())]) return chart scatter_base()。render_notebook() # - def scatter_dotsize_tickcount(): chart = Scatter(“Scatter-散點大小”) chart。set_options(dot_size=2, y_tick_count=8) chart。add_series(“series-A”, [(z[0], z[1]) for z in zip(Faker。values(), Faker。values())]) chart。add_series(“series-B”, [(z[0], z[1]) for z in zip(Faker。values(), Faker。values())]) return chartscatter_dotsize_tickcount()。render_notebook() def scatter_show_line(): chart = Scatter(“Scatter-散點連成線”) chart。set_options(y_tick_count=8, is_show_line=True) chart。add_series( “series-A”, [(z[0], z[1]) for z in zip(Faker。values(), Faker。values())] ) chart。add_series( “series-B”, [(z[0], z[1]) for z in zip(Faker。values(), Faker。values())] ) return chartscatter_show_line()。render_notebook()