1. 一個(gè)沒(méi)法商用,但是好玩有趣的 Python 手繪圖形庫(kù)!

        共 9764字,需瀏覽 20分鐘

         ·

        2020-09-13 08:15

        https://github.com/chenjiandongx/cutecharts

        今天,給大家介紹一個(gè)很酷的?Python 手繪風(fēng)格可視化神包:cutecharts

        和 Matplotlib 、pyecharts 等常見(jiàn)的圖表不同,使用這個(gè)包可以生成下面這種看起來(lái)像手繪的各種圖表,在一些場(chǎng)景下使用效果可能會(huì)更好。

        GitHub 地址:

        https://github.com/chenjiandongx/cutecharts

        怎么畫(huà)出這些圖表呢,很簡(jiǎn)單,一行命令先安裝好該庫(kù):

        pip?install?cutecharts

        也可以使用源碼安裝的方式:

        $?git?clone?https://github.com/chenjiandongx/cutecharts.git
        $?cd?cutecharts
        $?pip?install?-r?requirements.txt
        $?python?setup.py?install

        下面就介紹下每個(gè)圖表如何繪制。

        首先是一些圖表共通的參數(shù):

        Commons

        不同圖表有著部分相同的方法。

        __init__

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        title:?Optional[str]?=?None?????????????????????圖表標(biāo)題
        width:?str?=?"800px"????????????????????????????圖表寬度
        height:?str?=?"600px"???????????????????????????圖表高度
        assets_host:?Optional[str]?=?None???????????????引用資源?Host

        render

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        dest:?str?=?"render.html"???????????????????????渲染的文件路徑
        template_name:?str?=?"basic_local.html"?????????渲染使用的模板,一般不需要修改???

        render_notebook

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        template_type:?str?=?"basic"????????????????????渲染使用的模板類型,一般不需要修改?

        load_javascript

        加載 JS 依賴,在 JupyterLab 渲染時(shí)使用。

        Bar(柱狀圖)

        cutecharts.charts.Bar

        API

        cutecharts.charts.Bar.set_options

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        labels:?Iterable????????????????????????????????X?坐標(biāo)軸標(biāo)簽數(shù)據(jù)
        x_label:?str?=?""???????????????????????????????X?坐標(biāo)軸名稱
        y_label:?str?=?""???????????????????????????????Y?坐標(biāo)軸名稱
        y_tick_count:?int?=?3???????????????????????????Y?軸刻度分割段數(shù)
        colors:?Optional[Iterable]?=?None???????????????label?顏色數(shù)組
        font_family:?Optional[str]?=?None???????????????CSS?font-family

        cutecharts.charts.Bar.add_series

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        name:?str???????????????????????????????????????series?名稱
        data:?Iterable??????????????????????????????????series?數(shù)據(jù)列表

        Demo

        Bar-基本示例

        from?cutecharts.charts?import?Bar
        from?cutecharts.components?import?Page
        from?cutecharts.faker?import?Faker


        def?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?chart

        bar_base().render()

        Bar-調(diào)整顏色

        def?bar_tickcount_colors():
        ????chart?=?Bar("Bar-調(diào)整顏色")
        ????chart.set_options(labels=Faker.choose(),?y_tick_count=10,?colors=Faker.colors)
        ????chart.add_series("series-A",?Faker.values())
        ????return?chart

        Line(折線圖)

        cutecharts.charts.Line

        API

        cutecharts.charts.Line.set_options

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        labels:?Iterable????????????????????????????????X?坐標(biāo)軸標(biāo)簽數(shù)據(jù)
        x_label:?str?=?""???????????????????????????????X?坐標(biāo)軸名稱
        y_label:?str?=?""???????????????????????????????Y?坐標(biāo)軸名稱
        y_tick_count:?int?=?3???????????????????????????Y?軸刻度分割段數(shù)
        legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選
        colors:?Optional[Iterable]?=?None???????????????label?顏色數(shù)組
        font_family:?Optional[str]?=?None???????????????CSS?font-family

        cutecharts.charts.Line.add_series

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        name:?str???????????????????????????????????????series?名稱
        data:?Iterable??????????????????????????????????series?數(shù)據(jù)列表

        Demo

        Line-基本示例

        from?cutecharts.charts?import?Line
        from?cutecharts.components?import?Page
        from?cutecharts.faker?import?Faker


        def?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?chart

        Line-調(diào)整顏色

        def?line_tickcount_colors():
        ????chart?=?Line("Line-調(diào)整顏色")
        ????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

        Pie(餅圖)

        cutecharts.charts.Pie

        API

        cutecharts.charts.Pie.set_options

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        labels:?Iterable????????????????????????????????數(shù)據(jù)標(biāo)簽列表
        inner_radius:?float?=?0.5???????????????????????Pie?圖半徑
        legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選
        colors:?Optional[Iterable]?=?None???????????????label?顏色數(shù)組
        font_family:?Optional[str]?=?None???????????????CSS?font-family

        cutecharts.charts.Pie.add_series

        Params??????????????????????????????????????????Desc
        ------???????????????????????????????????????----
        data:?Iterable??????????????????????????????????series?數(shù)據(jù)列表

        Demo

        Pie-基本示例

        from?cutecharts.charts?import?Pie
        from?cutecharts.components?import?Page
        from?cutecharts.faker?import?Faker


        def?pie_base()?->?Pie:
        ????chart?=?Pie("Pie-基本示例")
        ????chart.set_options(labels=Faker.choose())
        ????chart.add_series(Faker.values())
        ????return?chart


        pie_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?chart

        Pie-Radius

        def?pie_radius():
        ????chart?=?Pie("Pie-Radius")
        ????chart.set_options(
        ????????labels=Faker.choose(),
        ????????inner_radius=0,
        ????)
        ????chart.add_series(Faker.values())
        ????return?chart

        Radar(雷達(dá)圖)

        cutecharts.charts.Radar

        API

        cutecharts.charts.Radar.set_options

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        labels:?Iterable????????????????????????????????數(shù)據(jù)標(biāo)簽列表
        is_show_label:?bool?=?True??????????????????????是否顯示標(biāo)簽
        is_show_legend:?bool?=?True?????????????????????是否顯示圖例
        tick_count:?int?=?3?????????????????????????????坐標(biāo)系分割刻度
        legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選
        colors:?Optional[Iterable]?=?None???????????????label?顏色數(shù)組
        font_family:?Optional[str]?=?None???????????????CSS?font-family

        cutecharts.charts.Radar.add_series

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        name:?str???????????????????????????????????????series?名稱
        data:?Iterable??????????????????????????????????series?數(shù)據(jù)列表

        Demo

        Radar-基本示例

        from?cutecharts.charts?import?Radar
        from?cutecharts.components?import?Page
        from?cutecharts.faker?import?Faker


        def?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?chart


        radar_base().render()


        Radar-顏色調(diào)整

        def?radar_legend_colors():
        ????chart?=?Radar("Radar-顏色調(diào)整")
        ????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?chart

        Scatter(散點(diǎn)圖)

        cutecharts.charts.Scatter

        API

        cutecharts.charts.Scatter.set_options

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        x_label:?str?=?""???????????????????????????????X?坐標(biāo)軸名稱
        y_label:?str?=?""???????????????????????????????Y?坐標(biāo)軸名稱
        x_tick_count:?int?=?3???????????????????????????X?軸刻度分割段數(shù)
        y_tick_count:?int?=?3???????????????????????????Y?軸刻度分割段數(shù)
        is_show_line:?bool?=?False??????????????????????是否將散點(diǎn)連成線
        dot_size:?int?=?1???????????????????????????????散點(diǎn)大小
        time_format:?Optional[str]?=?None???????????????日期格式
        legend_pos:?str?=?"upLeft"??????????????????????圖例位置,有?"upLeft",?"upRight",?"downLeft",?"downRight"?可選
        colors:?Optional[Iterable]?=?None???????????????label?顏色數(shù)組
        font_family:?Optional[str]?=?None???????????????CSS?font-family

        cutecharts.charts.Scatter.add_series

        Params??????????????????????????????????????????Desc
        ------??????????????????????????????????????????----
        name:?str???????????????????????????????????????series?名稱
        data:?Iterable??????????????????????????????????series?數(shù)據(jù)列表,[(x1,?y1),?(x2,?y2)]

        Demo

        Scatter-基本示例

        from?cutecharts.charts?import?Scatter
        from?cutecharts.components?import?Page
        from?cutecharts.faker?import?Faker


        def?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?chart


        scatter_base().render()

        Scatter-散點(diǎn)大小

        def?scatter_dotsize_tickcount():
        ????chart?=?Scatter("Scatter-散點(diǎn)大小")
        ????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?chart

        Scatter-散點(diǎn)連成線

        def?scatter_show_line():
        ????chart?=?Scatter("Scatter-散點(diǎn)連成線")
        ????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




        由于微信平臺(tái)算法改版,公號(hào)內(nèi)容將不再以時(shí)間排序展示,如果大家想第一時(shí)間看到我們的推送,強(qiáng)烈建議星標(biāo)我們和給我們多點(diǎn)點(diǎn)【在看】。星標(biāo)具體步驟為:


        (1)點(diǎn)擊頁(yè)面最上方“小詹學(xué)Python”,進(jìn)入公眾號(hào)主頁(yè)。


        (2)點(diǎn)擊右上角的小點(diǎn)點(diǎn),在彈出頁(yè)面點(diǎn)擊“設(shè)為星標(biāo)”,就可以啦。


        感謝支持,比心。

        瀏覽 72
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 欧美嫩穴| 欧美做爱无吗码 | 北条麻妃91视频 | 日日日日日夜夜夜夜夜 | 俺去俺来也www色官网黑人 |