MIT大神写给女神的Q版Python画图库—Cutecharts【技术创作101训练营】
还记得那是一个月黑风高的晚上,一位女同事让我给他讲解数据分析结果的时候,我默默的用python画了下面这张图。
依稀记得女同事看了之后,立刻转身离去,并留下了一句”哼,臭屌丝“,留下懵逼的我凌乱在风中。
凌乱的我对这张图左看、右看、上看、下看,终于明白在不懂技术的妹子眼中,这种正经的图表简直就是屌丝的象征。为了避免下一次同样的事情发生,我翻遍了Python的可视化库,终于找到了一个能够征服妹子的可视化库——cutecharts。
cutecharts是由麻省理工学院的大神们改写的一款萌萌哒的可视化工具,下面就来看一下如何用萌萌哒的图表征服你心爱的妹子。
cutecharts安装
pip install cutecharts
共用函数
__init__()
说明
- 初始化函数
参数
- title: Optionalstr = None 图表标题
- width: str = "800px" 图表宽度
- height: str = "600px" 图表高度
- assets_host: Optionalstr = None 引用资源 Host
render()
说明
- 用于生成HTML文件
参数
- dest: str = "render.html" 渲染的文件路径
- template_name: str = "basic_local.html" 渲染使用的模板,一般不需要修改
render_notebook()
说明
- 用于在notebook中展示图表
参数
- template_type: str = "basic" 渲染使用的模板类型,一般不需要修改
load_javascript()
- 加载 JS 依赖,在 JupyterLab 渲染时使用。
柱状图的使用
函数:cutecharts.charts.Bar
设置项:cutecharts.charts.Bar.set_options
参数(设置项)
- labels: Iterable X 坐标轴标签数据
- x_label: str = "" X 坐标轴名称
- y_label: str = "" Y 坐标轴名称
- y_tick_count: int = 3 Y 轴刻度分割段数
- colors: OptionalIterable = None label 颜色数组
- font_family: Optionalstr = None CSS font-family
数据添加:cutecharts.charts.Bar.add_series
参数(设置项)
- name: str series 名称
- data: Iterable series 数据列表
基本示例
- 注:在cutecharts.faker中存在了很多示例数据,我们直接使用即可。
from cutecharts.charts import Bar
from cutecharts.components import Page
from cutecharts.faker import Faker
def bar_base():
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
# 生成HTML文件
bar_base().render()
# 生成notebook显示
bar_base().render_notebook()
结果
折线图的使用
函数:cutecharts.charts.Line
设置项:cutecharts.charts.Line.set_options
参数(设置项)
- 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: OptionalIterable = None label 颜色数组
- font_family: Optionalstr = None CSS font-family
数据添加:cutecharts.charts.Line.add_series
参数(数据添加)
- name: str series 名称
- data: Iterable series 数据列表
基本示例
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",
legend_pos="upRight")
chart.add_series("series-A", Faker.values())
chart.add_series("series-B", Faker.values())
return chart
# 生成HTML文件
line_base().render()
# 生成notebook显示
line_base().render_notebook()
结果
饼图的使用
函数:cutecharts.charts.Pie
设置项:cutecharts.charts.Pie.set_options
参数(设置项)
- labels: Iterable 数据标签列表
- inner_radius: float = 0.5 Pie 图半径
- legend_pos: str = "upLeft" 图例位置,有 "upLeft", "upRight", "downLeft", "downRight" 可选
- colors: OptionalIterable = None label 颜色数组
- font_family: Optionalstr = None CSS font-family
数据添加:cutecharts.charts.Pie.add_series
参数(数据添加)
data: Iterable series 数据列表
基本示例
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
# 生成HTML文件
pie_base().render()
# 生成notebook显示
pie_base().render_notebook()
结果
实心饼图示例
def pie_radius():
chart = Pie("Pie-Radius")
chart.set_options(
labels=Faker.choose(),
inner_radius=0,
)
chart.add_series(Faker.values())
return chart
# 生成HTML文件
pie_radius().render()
# 生成notebook显示
pie_radius().render_notebook()
结果
雷达图的使用
函数:cutecharts.charts.Radar
设置项:cutecharts.charts.Radar.set_options
参数(设置项)
- 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: OptionalIterable = None label 颜色数组
- font_family: Optionalstr = None CSS font-family
数据添加:cutecharts.charts.Radar.add_series
参数(数据添加)
- name: str series 名称
- data: Iterable series 数据列表
基本示例
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
# 生成HTML文件
radar_base().render()
# 生成notebook显示
radar_base().render_notebook()
结果
散点图的使用
函数:cutecharts.charts.Scatter
设置项:cutecharts.charts.Scatter.set_options
参数(设置项)
- 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: Optionalstr = None 日期格式
- legend_pos: str = "upLeft" 图例位置,有 "upLeft", "upRight", "downLeft", "downRight" 可选
- colors: OptionalIterable = None label 颜色数组
- font_family: Optionalstr = None CSS font-family
数据添加:cutecharts.charts.Scatter.add_series
参数(数据添加)
- name: str series 名称
- data: Iterable series 数据列表,(x1, y1), (x2, y2)
基本示例
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
# 生成HTML文件
scatter_base().render()
# 生成notebook显示
scatter_base().render_notebook()
结果
总结
cutecharts的功能虽然比不上pyecharts那么强大,但是这些基本的图表已经可以满足我们大部分的需求了,各位还等什么!为了你心中的女神!做一个文艺范的“程序猿”,快动起来吧~
- 设计模式学习(二): 观察者模式 (C#)
- Carbondata源码系列(一)文件生成过程
- BoopSuite:基于Python编写的无线安全审计套件
- 设计模式学习(一):多用组合少用继承(C#)
- 在asp.net web api 2 (ioc autofac) 使用 Serilog 记录日志
- hbase源码系列(十三)缓存机制MemStore与Block Cache
- hbase源码系列(十四)Compact和Split
- 设计模式学习(四): 1.简单工厂 (附C#实现)
- 从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD
- 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
- RavenDb学习(十)附件,存储大对象
- 从头编写 asp.net core 2.0 web api 基础框架 (3)
- Distribute Cached 使用
- RavenDb学习(七) 异步工作以及维度查询
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- easyswoole一键安装脚本及宝塔安装错误问题
- CentOS7系统增加swap的操作方法实例
- iOS逆向之OpenSSH登录iPhone
- linux中SUID,SGID与SBIT的奇妙用途详解
- 详解Linux文件操作知识点
- Linux中nohup与&的用法和区别详解
- Linux中有效地管理进程的8个命令
- Centos7 下安装python3及卸载的教程
- Linux使用VIM编辑器的方法
- Centos安装MYSQL8.X的教程
- Linux使用join -a1来合并两个文件
- ZFS是什么?使用ZFS的理由及特性介绍
- centos7.x 部署主、从DNS服务器问题
- Linux查看History记录加时间戳的小技巧
- Trash-Cli:Linux上的命令行回收站工具