Python 手繪風格可視化神包:cutecharts

https://github.com/chenjiandongx/cutechartsjavascript

Python 手繪風格可視化神包:cutecharts。html

和 Matplotlib 、pyecharts 等常見的圖表不一樣,使用這個包能夠生成下面這種看起來像手繪的各類圖表,在一些場景下使用效果可能會更好java

 

 

 

GitHub 地址:python

https://github.com/chenjiandongx/cutechartsgit

怎麼畫出這些圖表呢,很簡單,一行命令先安裝好該庫:github

pip install cutecharts

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

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

下面就介紹下每一個圖表如何繪製。echarts

首先是一些圖表共通的參數:ui

Commons

不一樣圖表有着部分相同的方法。spa

__init__

Params                                          Desc
------                                          ----
title: Optional[str] = None                             圖表標題
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 渲染時使用。

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-family

cutecharts.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 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-調整顏色

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 chart

 

 

 

 

 

Line(折線圖)

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-family

cutecharts.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 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-調整顏色

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

 

 

 

 

 

Pie(餅圖)

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-family

cutecharts.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 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(雷達圖)

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-family

cutecharts.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 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-顏色調整

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 chart

 

 

 

 

 

Scatter(散點圖)

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-family

cutecharts.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 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-散點大小

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 chart

 

 

 

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

 

相關文章
相關標籤/搜索