酷!一個仿漫畫手繪風格的 Python 圖表庫

【導讀】:關於數據可視化工具,若是你有點厭煩了常見風格(好比:Matplotlibpyecharts),那能夠試試換一種風格。javascript

本文前哨君給你們介紹一個風格徹底不同的開源庫:cutecharts,其 UI 效仿 XKCD 漫畫風格,在部分場景(好比:我的做品展現)的效果或許會更好。html

補充:XKCD 是一個 IT 漫畫網站,在國外很是有名氣。

這是一張 XKCD 漫畫做品的漢化版

爲何會有 cutecharts?

據 cutecharts 的開發者介紹,他我的很是喜歡一個 JS 圖表庫 chart.xkcd,但它支持的圖表類型很少,比 pyecharts 少不少。java

Javascript 在數據交互和視覺效果上更有優點,而 Python 是一種深受數據科學界的喜好的語言。所以,他想結合這兩種技術的力量,因而就開發了 cutecharts.py。python

此外,cutecharts 更多的是一個庫,用來學習如何將 Javascript 世界與 Python/notebook 相結合。cutecharts 的項目結構與 pyecharts 相同,它支持 pyechart s的全部核心功能,同時更輕量級,整體上也更簡潔。git

GitHub 地址:

https://github.com/chenjiando...github

簡單使用

一行命令先安裝好該庫:shell

pip install cutecharts

下面就是 cutecharts 項目主頁提供的一些示例。數組

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

Commons

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

__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

這個圖表庫感謝有興趣的童鞋,能夠試試。

開源前哨 平常分享熱門、有趣和實用的開源項目。參與維護 10萬+ Star 的開源技術資源庫,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。
相關文章
相關標籤/搜索