作者:陈键冬,Python中文社区专栏作者,开源项目pyecharts核心开发者。pyecharts项目曾上榜 Github Trending in Open Source,目前star数量超过7100。

GitHub:https://github.com/chenjiandongx

项目地址:https://github.com/chenjiandongx/cutecharts

初衷

在闲逛 Github 的时候,发现了一个十分有趣的图表库 chart.xkcd,该库的图表的手绘风格很可爱。所以有了一个将 chart.xkcd 和 Python 相结合的想法,这个想法最终变成了你现在所看到的 cutecharts。

chart.xkcd 的图表类型相对 Echarts 来说少得多,只支持几种基本的图表且没有太多的配置项,想使用更丰富的图表的话 pyecharts 或许是个更好的选择。cutecharts 我个人的想法是作为一个学习如何将 Javascript 与 Python/Notebook 相结合的项目。毋庸置疑,JS 库在交互性以及动画效果上有天然的优势,若能够将其优势与 Notebook 环境结合起来的话,那将能够产生很多有趣的项目。

cutecharts 的项目结构与 pyecharts 基本保持一致,拥有 pyecharts 的所有核心功能。但是整体更加小巧,代码更加精简。如果把 cutecharts 代码读完了,再去看 pyecharts 的代码,可能就会发现,其实也就那样,根本就没什么神秘的东西。在这里也是抛砖引玉,希望 Python 社区有更多地将 JS 与 Python/Notebook 结合的优秀第三方库。cutecharts 的学习价值远大于它的使用价值。

安装

pip 安装

$ pip(3) install cutecharts

源码安装

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

使用

  • 图表文档:https://github.com/chenjiandongx/cutecharts/blob/master/docs/charts.md

  • 组件文档:https://github.com/chenjiandongx/cutecharts/blob/master/docs/components.md

  • 版本日志:https://github.com/chenjiandongx/cutecharts/blob/master/docs/changelog.md

本地环境

生成 HTML

from cutecharts.charts import Linechart = Line("某商场销售情况")
chart.set_options(labels=["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"], x_label="I'm xlabel", y_label="I'm ylabel",
)
chart.add_series("series-A", [57, 134, 137, 129, 145, 60, 49])
chart.add_series("series-B", [114, 55, 27, 101, 125, 27, 105])
chart.render()

render 方法会在本地生成一个render.html 文件,使用浏览器打开。

在JupyterNotebook上绘制

柱形图

from cutecharts.charts import Bar
from cutecharts.components import Page
from cutecharts.faker import Faker
%matplotlib inlinedef 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 chartbar_base().render_notebook()


折线图

from cutecharts.charts import Line
from cutecharts.components import Page
from cutecharts.faker import Fakerdef 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_notebook()

饼图

from cutecharts.charts import Pie
from cutecharts.components import Page
from cutecharts.faker import Fakerdef pie_base() -> Pie:chart = Pie("Pie-基本示例")chart.set_options(labels=Faker.choose())chart.add_series(Faker.values())return chartpie_base().render_notebook()

def pie_legend_font():chart = Pie("Pie-Legend")chart.set_options(labels=Faker.choose(),legend_pos="upRight",font_family='"Times New Roman",Georgia,Serif;',)chart.add_series(Faker.values())return chartpie_legend_font().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
pie_radius().render_notebook()


雷达图

from cutecharts.charts import Radar
from cutecharts.components import Page
from cutecharts.faker import Fakerdef 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 chartradar_base().render_notebook()

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 chartradar_legend_colors().render_notebook()

散点图

from cutecharts.charts import Scatter
from cutecharts.components import Page
from cutecharts.faker import Fakerdef 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 chartscatter_base().render_notebook()

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 chartscatter_dotsize_tickcount().render_notebook()

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 chartscatter_show_line().render_notebook()

敲可爱的手绘风可视化库——cutecharts相关推荐

  1. 给ggplot2来个「手绘风」

    本文借助xkcd在ggplot2里玩下手绘风,续前两篇: 一行Python代码让图形秒变「手绘风」 一款蠢萌蠢萌的可视化工具 xkcd主要有以下6个属性,详细功能都在后文代码里了- theme_xkc ...

  2. 可爱圣诞节手绘手帐素材,增添情趣

    绘画和手作不是艺术,是一种自我表达也是对生活的热爱,所以,每个人都可以用画画来创 作. 圣诞节,大家都不陌生,这是一个西方节日,但是,咱们中国人也慢慢的喜爱上这个充满爱的 节日了. 节日快要到来之前, ...

  3. 大气简洁手绘风商务计划书PPT模板

    今天小编将给大家带来得是主题为大气简洁手绘风商务计划书PPT模板.这份PPT模板的模板样式是以浅色作为模板的主色调,模板整体的制作围绕着手绘风展开,模板的内容也十分丰富多彩.下面就给大家展示该PPT模 ...

  4. 20X29 FCPX插件50种可爱流行手绘图形MG元素包 Hand Painted

    20X29 FCPX插件50种可爱流行手绘图形MG元素包 Hand Painted [插件介绍] 为Final Cut Pro提供了流行手绘MG元素包,共50个小元素动画效果,可修改大小位置旋转和颜色 ...

  5. 可爱的手绘涂鸦元素视频包装AE竖屏模板

    可爱的手绘涂鸦元素视频包装AE竖屏模板 – Lovely Kids Doodle Element Instagram Story Template

  6. 简约手绘风卡通教学课件PPT模板

    模板介绍 精美PPT模板设计,简约手绘风卡通教学课件PPT模板.一套说课PPT幻灯片模板,内含灰色多种配色,精美风格设计,动态播放效果,精美实用. 一份设计精美的PPT模板,可以让你在汇报演讲时脱颖而 ...

  7. Unreal Engine 4 手绘风滤镜(Paint Filter)即 桑原滤镜(Kuwahara Filter)教程(上)

    原文|<Unreal Engine 4 Paint Filter Tutorial> 作者|Tommy Tran May 1 2018 | 翻译 开发游戏的老王 阅读时长|25分钟 内容难 ...

  8. 大气欧美彩色手绘风论文答辩PPT模板

    下面这篇文章内容当中,小编将和大家分享得是主题为大气欧美彩色手绘风论文答辩PPT模板.这份PPT模板的模板样式是以白色作为模板背景,可模板内的边框.图案的颜色则为彩色,模板的风格为大气欧美手绘风.下面 ...

  9. 利用深度学习实现手绘数据可视化的生成

    个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 前一段时间,我开发了Sketchify, 该工具可以把任何以SVG为渲染技术的可视化转化为手绘风格.(参考手绘风格的数据可视化实现 ...

最新文章

  1. mysql物理文件组成
  2. swagger-bootstrap-ui 1.9.3 发布,i18n及自定义文档支持
  3. python中new方法详解及_Python中new方法的详解
  4. 大型网站架构演化(二)——应用服务和数据服务分离
  5. tcp协议的主要功能是什么_前端要知道的网络知识一:TCP/IP 协议到底在讲什么...
  6. 什么样的知识,值得我们终生学习
  7. 微服务之旅的经验分享
  8. php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】
  9. hdoj--2094--产生冠军(集合函数)
  10. Js中Date日期的使用
  11. 初级Java代码——自制坦克大战游戏
  12. Java测试框架-junit5详解
  13. 技能高考的计算机教室,2020湖北技能高考成绩查询时间
  14. macOS 13 Ventura系统自动开机在哪设置?
  15. win7 怎么修改记事本的默认编码(测试有效果)
  16. php imap读取邮箱邮件信息
  17. ST32/GD32嵌入式硬件开发总目录
  18. 纯html css动画效果,8个超震撼的HTML5和纯CSS3动画源码
  19. 张小龙、周鸿祎、傅盛都认同的架构设计思维
  20. Live Server 正常启用 但是网页不更新 解决方法

热门文章

  1. 计算几何常用算法[转]
  2. 深入浅出CChart 每日一课——快乐高四第二十四课 武当梯云纵,移花接木之Visual Basic.Net
  3. 爬取《Five Hundred Miles》在网易云音乐的所有评论
  4. Arduino Uno + APDS9930 实现手势控制LED灯亮灭、调光等
  5. SQL Server高级子查询
  6. 第十一课 模糊工具、海绵工具、仿制图章工具
  7. sync包——WaitGroup
  8. 如何判断生成的交易策略(EA)是好是坏?
  9. 西北乱跑娃 --- opencv泛洪填充学习笔记
  10. 2021年中国中药饮片产业销售规模及重点企业对比分析[图]