0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个非常酷的Python手绘风格的可视化包:cutecharts

中科院长春光机所 来源:程序员阿狗 2020-08-21 11:52 次阅读

大家可能已经习惯了用Matplotlib和seaborn来制作不同的图表,但是今天要介绍一个非常酷的Python手绘风格的可视化包:cutecharts。

这个包可以用来生成以下几种看起来像手绘的图表,在某些场景下效果可能更好。这些可爱的图表还具有交互性和动态性。每当鼠标在图表上悬停时,数字就会显示出来。而要创建这种图表,你只需要几行Python代码。

目前,该库支持五种图表--条形图、线形图、饼图、雷达图和散点图。它还支持图表的组合。

在开始绘制可爱的图表之前,我们需要安装 cutechart 库。

$ pip install cutecharts

安装好后我们来尝试画下条形图和线图。首先创建下数据,以某个城市的温度数据为例。

#import library and dataimport cutecharts.charts as ctcdf=pd.DataFrame({ ‘x’:[‘Sun.’,’Mon.’,’Tue.’,’Wed.’,’Thu.’,’Fri.’,’Sat.’], ‘y’:[14,15,17,20,22.3,23.7,24.8], ‘z’:[16,16.4,23.6,24.5,19.9,13.6,13.4]})

1

条形图

代码:

chart = ctc.Bar(‘Toronto Temperature’,width=’500px’,height=’400px’)chart.set_options( labels=list(df[‘x’]), x_label='Days', y_label='Temperature (Celsius)' , colors=[‘#1EAFAE’ for i in range(len(df))] )chart.add_series('This week',list(df[‘y’]))chart.render_notebook()

效果:

在这个条形图中,所有的条形图都有相同的颜色。如果你想自定义每个条形图的颜色,你只需要更改一行代码。

chart = ctc.Bar(‘title’,width=’500px’,height=’400px’)chart.set_options( labels=list(df[‘x’]), x_label=”Days”, y_label=”Temperature (Celsius)” , colors=[‘#FFF1C9’,’#F7B7A3',’#EA5F89',’#9B3192',’#57167E’,’#47B39C’,’#00529B’] )chart.add_series(“This week”,list(df[‘y’]))chart.render_notebook()

2

线图

如果想观察时间序列数据的变动差异,线图无疑更直观。

代码:

chart = ctc.Line(“Toronto Temperature”,width=’500px’,height=’400px’)chart.set_options( labels=list(df[‘x’]), x_label=”Days”, y_label=”Temperature (Celsius)” )chart.add_series(“This Week”, list(df[‘y’])) chart.add_series(“Last Week”, list(df[‘z’]))chart.render_notebook()

还有一个特别的功能:

当你把鼠标悬停在图表上时,图表会自动显示带有数字的标签,而且还画了一条虚线,这样本周和上周的气温差异就更加直观了。

3

雷达图

要将线型图改为雷达图,你只需要将图表类型改为ctc.Radar。

代码:

chart = ctc.Radar(‘Toronto Temperature’,width=’700px’,height=’600px’)chart.set_options( labels=list(df[‘x’]), is_show_legend=True, #by default, it is true. You can turn it off. legend_pos=’upRight’ #location of the legend )chart.add_series(‘This week’,list(df[‘y’]))chart.add_series(“Last week”,list(df[‘z’]))chart.render_notebook()

效果:

4

饼图

我们需要另一个数据集来制作饼图和甜甜圈图。

创建数据集:

df=pd.DataFrame({‘x’:[‘Asia’, ‘Africa’, ‘Europe’, ‘North America’, ‘South America’, ‘Australia’], ‘y’:[59.69, 16, 9.94, 7.79, 5.68, 0.54]})

这个数据集包含了大洲名称和人口占比。

chart = ctc.Pie(‘% of population by continent’,width=’500px’,height=’400px’)chart.set_options( labels=list(df[‘x’]), inner_radius=0 )chart.add_series(list(df[‘y’])) chart.render_notebook()

效果:

而且把饼图变成甜甜圈图也很容易。你只需要改变inner_radius的参数

代码:

df=pd.DataFrame({‘x’:[‘Asia’, ‘Africa’, ‘Europe’, ‘North America’, ‘South America’, ‘Australia’], ‘y’:[59.69, 16, 9.94, 7.79, 5.68, 0.54]})chart = ctc.Pie(‘% of population by continent’,width=’500px’,height=’400px’)chart.set_options( labels=list(df[‘x’]), inner_radius=0.6 )chart.add_series(list(df[‘y’])) chart.render_notebook()

5

散点图

为了绘制散点图,我将创建一个新的数据集。这次我们用到的是温度和冰淇淋销量数据。

数据集:

Temperature = [14.2,16.4,11.9,15.2,18.5,22.1,19.4,25.1,23.4,18.1,22.6,17.2]Sales = [215,325,185,332,406,522,412,614,544,421,445,408]

散点图代码:

chart = ctc.Scatter(‘Ice Cream Sales vs Temperature’,width=’500px’,height=’600px’)chart.set_options( x_label=”Temperature (Celcius)”, y_label=”Icecream Sales” , colors=[‘#1EAFAE’], is_show_line = False, dot_size=1)chart.add_series(“Temperature”, [(z[0], z[1]) for z in zip(Temperature, Sales)])chart.render_notebook()

6

组合图

如果你想把多个图表组合在一起,那么代码也不复杂。

chart1 = ctc.Line(“Toronto Temperature”,width=’500px’,height=’400px’)chart1.set_options( labels=list(df[‘x’]), x_label=”Days”, y_label=”Temperature (Celsius)” )chart1.add_series(“This Week”, list(df[‘y’])) chart1.add_series(“Last Week”, list(df[‘z’]))chart2 = ctc.Bar(‘Toronto Temperature’,width=’500px’,height=’400px’)chart2.set_options( labels=list(df[‘x’]), x_label=”Days”, y_label=”Temperature (Celsius)” , colors=[‘#1EAFAE’ for i in range(len(df))] )chart2.add_series(“This week”,list(df[‘y’]))chart2.add_series(“Last week”,list(df[‘z’]))page = Page()page.add(chart1, chart2)page.render_notebook()

cutecharts这个包非常简单易用,如果你也喜欢这个风格的图表,就赶快试一下。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4717

    浏览量

    68199
  • 可视化
    +关注

    关注

    1

    文章

    1161

    浏览量

    20846
  • python
    +关注

    关注

    55

    文章

    4765

    浏览量

    84353

原文标题:啥?Python竟然也可以制作萌萌的手绘图表

文章出处:【微信号:cas-ciomp,微信公众号:中科院长春光机所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    三维可视化的魅力与应用

    三维可视化种强大的工具,它融合了艺术、科学和技术,通过在三维空间中呈现数据、概念和想法,为人们提供了种直观而生动的方式来理解和探索信息。这项技术在当今世界中的应用非常广泛,涵盖了
    的头像 发表于 07-17 14:19 201次阅读

    大屏数据可视化 开源

    在当今信息爆炸的时代,数据已经成为各个行业决策制定和业务发展的关键。为了更直观、准确地理解和利用海量数据, 大屏数据可视化 成为种强大的工具。通过将数据以图表、图形等形式展示在大屏幕上,不仅
    的头像 发表于 06-27 16:06 339次阅读
    大屏数据<b class='flag-5'>可视化</b> 开源

    如何实现园区大屏可视化

    如何实现园区大屏可视化? 1.建立孪生模型:首先需要建立园区的孪生模型,即个数字化的虚拟模型,反映了园区的实际情况、结构、设备、人员等信息。这个模型可以通过传感器、监控设备、GIS 数据等实时获取和更新,确保与实际情况保持
    的头像 发表于 06-19 15:39 351次阅读
    如何实现园区大屏<b class='flag-5'>可视化</b>?

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是种将数据以图形、图像、动画等视觉形式展现出来的技术,特别是在处理和分析态势数据时,该技术能够将复杂的数据转化为直观、易于理解的视觉表现。以下是态势数据可视化技术
    的头像 发表于 06-11 15:47 322次阅读

    上位机可视化界面编程软件有哪些

    。以下是些常见的上位机可视化界面编程软件: Qt (跨平台C++框架) 介绍 :Qt是跨平台的C++图形用户界面应用程序框架。它提供了
    的头像 发表于 06-06 10:48 2066次阅读

    c语言怎么做可视化界面

    介绍如何使用C语言开发可视化界面,包括所需的库、工具和开发步骤。 选择合适的图形库 为了在C语言中创建可视化界面,我们需要选择合适的图形库。以下是
    的头像 发表于 06-06 10:46 1946次阅读

    大屏数据可视化的作用和意义

    大屏数据可视化是指利用大屏幕设备展示数据信息,通过图表、图像、动画等视觉手段将数据呈现出来,以便用户能够直观、清晰地理解数据背后的含义和关联。在信息化时代,数据已经成为企业决策和运营的重要依托,而
    的头像 发表于 06-03 17:56 591次阅读

    智慧城市-可视化,进步提高信息建设水平

    智能城市可视化是指整合各种城市信息资源,以地图、虚拟现实等形式展示各种城市数据,更直观地了解和管理城市的运行和发展。智能城市可视化主要通过地理信息系统(GIS)、实现大数据、虚拟现实等技术,呈现城市
    的头像 发表于 05-22 16:49 394次阅读

    请问freertos可视化调试中打印任务信息是不是只可以打印次?

    在freertos中,使用可视化调试打印任务消息,但是打印不全,还只能打印次,使用IAR自带的调试插件看,显示可视化调试任务的堆栈顶全是a,这事怎么回事?
    发表于 05-07 06:16

    数据可视化:企业数字建设效果的呈现

    数据可视化即通过图表的形式将数据的内在信息有逻辑性地呈现给用户,使用户更容易发现数据中蕴藏的规律,找出问题,进而做出决策;另方面,数据可视化项目也是张重要的名片,是企业数字
    的头像 发表于 04-29 10:18 391次阅读
    数据<b class='flag-5'>可视化</b>:企业数字<b class='flag-5'>化</b>建设效果的呈现

    FUXA基于Web的过程可视化软件案例

    FUXA——基于Web的过程可视化软件
    发表于 04-24 18:32 0次下载

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是种将复杂、动态的态势数据以直观、易于理解的方式展现出来的技术手段。以下是几种主要的态势数据可视化技术: 网络安全态势指标可视化分析系统及方法,针对安全
    的头像 发表于 04-22 15:17 357次阅读

    态势可视化系统软件

    智慧华盛恒辉态势可视化种对特定环境中段时间内的持续动作和改变的目标实体的感知、认知和理解,并最终以直观、灵活、逼真的方式展示总体状态的技术。 智慧华盛恒辉可视化技术是战场环境表达
    的头像 发表于 04-22 14:48 276次阅读

    可视化全程追溯,可视化资产管理系统

    摘要:本文将从应用价值、系统功能、资产盘点、资产出入库、资产定位以及系统实现能效等几个方面,阐述新导物联可视化资产管理系统为企业提供的优势,以提升资产管理的效率和准确度。 、应用价值 可视化资产
    的头像 发表于 01-11 13:54 439次阅读
    <b class='flag-5'>可视化</b>全程追溯,<b class='flag-5'>可视化</b>资产管理系统

    键生成可视化图表/大屏 这13款数据可视化工具很强大

    前言 数字经济时代,我们每天正在处理海量数据,对数据可视化软件的需求变得突出,它可以帮助人们通过模式、趋势、仪表板、图表等视觉辅助工具理解数据的重要性。 如果遇到数据集需要分析处理,但是你不又知道
    的头像 发表于 12-19 17:27 5021次阅读
    <b class='flag-5'>一</b>键生成<b class='flag-5'>可视化</b>图表/大屏 这13款数据<b class='flag-5'>可视化</b>工具很强大