Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!

今天,给大家介绍一个很酷的 Python 手绘风格可视化神包:cutecharts。

和 Matplotlib 、pyecharts 等常见的图表不同,使用这个包可以生成下面这种看起来像手绘的各种图表,在一些场景下使用效果可能会更好。

Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第1张图片

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               引用资源 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()
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第2张图片 img

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第3张图片 img

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()
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第4张图片 img

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第5张图片 img

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第6张图片 img

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()
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第7张图片 img

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第8张图片 img

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第9张图片 img

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()

Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第10张图片

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

Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第11张图片

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()
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第12张图片 img

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第13张图片 img

Scatter-散点连成线

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
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!_第14张图片 img

觉得不错就赶紧去尝尝鲜,点个赞再走!

本文转自:https://github.com/chenjiandongx/cutecharts

零基础学 Python,来这里

只需7天时间,跨进Python编程大门,已有3800+加入

【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。

【赠予】后续圈主将开发python,0基础入门在线课程,免费送给圈友们,供巩固和系统化复习

(三重福利)最近入圈送大礼包:

1、2.7G、308份最新数据分析报告
2、40G 人工智能算法  视频课
3、Python爬虫课,共14课


更多精彩

在公众号后台对话框输入以下关键词

查看更多优质内容!

PM2.5 | 世界杯 | 惊喜 | 附书代码

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:data_circle_yoni

● 总结 Python 的4张超大思维导图,一定不要错过哦

● 知乎13万赞!为何很多名校毕业生,都输在了人生后半程

● 【连载】小白轻松学Python ---- 到底如何入门  Python?

● 怎么才能自学成 Python 大牛?这有些建议

● Python打牢基础,从22个语法开始!

● 手把手 | 爬取京东评论,且修改网址直接可复用哦(送代码)

● 为何“Python 之父” 力荐的小蓝书火了?

● Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)

● 做数据分析不得不看的书有哪些?

● Python实战 | 手把手教你爬取豆瓣电影 Top 250(附全部代码)

你可能感兴趣的:(Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!)