一个没法商用,但是好玩有趣的 Python 手绘图形库!
https://github.com/chenjiandongx/cutecharts
今天,給大家介紹一個很酷的?Python 手繪風格可視化神包:cutecharts。
和 Matplotlib 、pyecharts 等常見的圖表不同,使用這個包可以生成下面這種看起來像手繪的各種圖表,在一些場景下使用效果可能會更好。
GitHub 地址:
https://github.com/chenjiandongx/cutecharts
怎么畫出這些圖表呢,很簡單,一行命令先安裝好該庫:
pip?install?cutecharts也可以使用源碼安裝的方式:
$?git?clone?https://github.com/chenjiandongx/cutecharts.git $?cd?cutecharts $?pip?install?-r?requirements.txt $?python?setup.py?install下面就介紹下每個圖表如何繪制。
首先是一些圖表共通的參數:
Commons
不同圖表有著部分相同的方法。
__init__
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- title:?Optional[str]?=?None?????????????????????圖表標題 width:?str?=?"800px"????????????????????????????圖表寬度 height:?str?=?"600px"???????????????????????????圖表高度 assets_host:?Optional[str]?=?None???????????????引用資源?Hostrender
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- dest:?str?=?"render.html"???????????????????????渲染的文件路徑 template_name:?str?=?"basic_local.html"?????????渲染使用的模板,一般不需要修改???render_notebook
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- template_type:?str?=?"basic"????????????????????渲染使用的模板類型,一般不需要修改?load_javascript
加載 JS 依賴,在 JupyterLab 渲染時使用。Bar(柱狀圖)
cutecharts.charts.Bar
API
cutecharts.charts.Bar.set_options
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- labels:?Iterable????????????????????????????????X?坐標軸標簽數據 x_label:?str?=?""???????????????????????????????X?坐標軸名稱 y_label:?str?=?""???????????????????????????????Y?坐標軸名稱 y_tick_count:?int?=?3???????????????????????????Y?軸刻度分割段數 colors:?Optional[Iterable]?=?None???????????????label?顏色數組 font_family:?Optional[str]?=?None???????????????CSS?font-familycutecharts.charts.Bar.add_series
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- name:?str???????????????????????????????????????series?名稱 data:?Iterable??????????????????????????????????series?數據列表Demo
Bar-基本示例
from?cutecharts.charts?import?Bar from?cutecharts.components?import?Page from?cutecharts.faker?import?Fakerdef?bar_base()?->?Bar:chart?=?Bar("Bar-基本示例")chart.set_options(labels=Faker.choose(),?x_label="I'm?xlabel",?y_label="I'm?ylabel")chart.add_series("series-A",?Faker.values())return?chartbar_base().render()Bar-調整顏色
def?bar_tickcount_colors():chart?=?Bar("Bar-調整顏色")chart.set_options(labels=Faker.choose(),?y_tick_count=10,?colors=Faker.colors)chart.add_series("series-A",?Faker.values())return?chartLine(折線圖)
cutecharts.charts.Line
API
cutecharts.charts.Line.set_options
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- labels:?Iterable????????????????????????????????X?坐標軸標簽數據 x_label:?str?=?""???????????????????????????????X?坐標軸名稱 y_label:?str?=?""???????????????????????????????Y?坐標軸名稱 y_tick_count:?int?=?3???????????????????????????Y?軸刻度分割段數 legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選 colors:?Optional[Iterable]?=?None???????????????label?顏色數組 font_family:?Optional[str]?=?None???????????????CSS?font-familycutecharts.charts.Line.add_series
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- name:?str???????????????????????????????????????series?名稱 data:?Iterable??????????????????????????????????series?數據列表Demo
Line-基本示例
from?cutecharts.charts?import?Line from?cutecharts.components?import?Page from?cutecharts.faker?import?Fakerdef?line_base()?->?Line:chart?=?Line("Line-基本示例")chart.set_options(labels=Faker.choose(),?x_label="I'm?xlabel",?y_label="I'm?ylabel")chart.add_series("series-A",?Faker.values())chart.add_series("series-B",?Faker.values())return?chart line_base().render()Line-Legend 位置
def?line_legend():chart?=?Line("Line-Legend?位置")chart.set_options(labels=Faker.choose(),?legend_pos="upRight")chart.add_series("series-A",?Faker.values())chart.add_series("series-B",?Faker.values())return?chartLine-調整顏色
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?chartPie(餅圖)
cutecharts.charts.Pie
API
cutecharts.charts.Pie.set_options
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- labels:?Iterable????????????????????????????????數據標簽列表 inner_radius:?float?=?0.5???????????????????????Pie?圖半徑 legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選 colors:?Optional[Iterable]?=?None???????????????label?顏色數組 font_family:?Optional[str]?=?None???????????????CSS?font-familycutecharts.charts.Pie.add_series
Params??????????????????????????????????????????Desc ------???????????????????????????????????????---- data:?Iterable??????????????????????????????????series?數據列表Demo
Pie-基本示例
from?cutecharts.charts?import?Pie from?cutecharts.components?import?Page from?cutecharts.faker?import?Fakerdef?pie_base()?->?Pie:chart?=?Pie("Pie-基本示例")chart.set_options(labels=Faker.choose())chart.add_series(Faker.values())return?chartpie_base().render()Pie-Legend
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-Radius
def?pie_radius():chart?=?Pie("Pie-Radius")chart.set_options(labels=Faker.choose(),inner_radius=0,)chart.add_series(Faker.values())return?chartRadar(雷達圖)
cutecharts.charts.Radar
API
cutecharts.charts.Radar.set_options
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- labels:?Iterable????????????????????????????????數據標簽列表 is_show_label:?bool?=?True??????????????????????是否顯示標簽 is_show_legend:?bool?=?True?????????????????????是否顯示圖例 tick_count:?int?=?3?????????????????????????????坐標系分割刻度 legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選 colors:?Optional[Iterable]?=?None???????????????label?顏色數組 font_family:?Optional[str]?=?None???????????????CSS?font-familycutecharts.charts.Radar.add_series
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- name:?str???????????????????????????????????????series?名稱 data:?Iterable??????????????????????????????????series?數據列表Demo
Radar-基本示例
from?cutecharts.charts?import?Radar from?cutecharts.components?import?Page from?cutecharts.faker?import?Fakerdef?radar_base()?->?Radar:chart?=?Radar("Radar-基本示例")chart.set_options(labels=Faker.choose())chart.add_series("series-A",?Faker.values())chart.add_series("series-B",?Faker.values())return?chartradar_base().render()Radar-顏色調整
def?radar_legend_colors():chart?=?Radar("Radar-顏色調整")chart.set_options(labels=Faker.choose(),?colors=Faker.colors,?legend_pos="upRight")chart.add_series("series-A",?Faker.values())chart.add_series("series-B",?Faker.values())return?chartScatter(散點圖)
cutecharts.charts.Scatter
API
cutecharts.charts.Scatter.set_options
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- x_label:?str?=?""???????????????????????????????X?坐標軸名稱 y_label:?str?=?""???????????????????????????????Y?坐標軸名稱 x_tick_count:?int?=?3???????????????????????????X?軸刻度分割段數 y_tick_count:?int?=?3???????????????????????????Y?軸刻度分割段數 is_show_line:?bool?=?False??????????????????????是否將散點連成線 dot_size:?int?=?1???????????????????????????????散點大小 time_format:?Optional[str]?=?None???????????????日期格式 legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選 colors:?Optional[Iterable]?=?None???????????????label?顏色數組 font_family:?Optional[str]?=?None???????????????CSS?font-familycutecharts.charts.Scatter.add_series
Params??????????????????????????????????????????Desc ------??????????????????????????????????????????---- name:?str???????????????????????????????????????series?名稱 data:?Iterable??????????????????????????????????series?數據列表,[(x1,?y1),?(x2,?y2)]Demo
Scatter-基本示例
from?cutecharts.charts?import?Scatter from?cutecharts.components?import?Page from?cutecharts.faker?import?Fakerdef?scatter_base()?->?Scatter:chart?=?Scatter("Scatter-基本示例")chart.set_options(x_label="I'm?xlabel",?y_label="I'm?ylabel")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_base().render()Scatter-散點大小
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-散點連成線
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?chart由于微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為: (1)點擊頁面最上方“小詹學Python”,進入公眾號主頁。(2)點擊右上角的小點點,在彈出頁面點擊“設為星標”,就可以啦。感謝支持,比心。總結
以上是生活随笔為你收集整理的一个没法商用,但是好玩有趣的 Python 手绘图形库!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 探索性数据分析,这8个流行的 Pytho
- 下一篇: 键盘敲入 A 字母时,操作系统期间发生了