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

    文章

    4942

    浏览量

    73160
  • 可视化
    +关注

    关注

    1

    文章

    1318

    浏览量

    22602
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89600

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业可视化平台是什么

    工业可视化平台是种基于信息技术和可视化技术,将工业生产过程中的数据、信息、流程等以直观、动态的图形方式呈现,并实现交互式管理与分析的数字化工具。它通过整合工业物联网(IIoT)、大
    的头像 发表于 10-24 18:00 843次阅读

    光伏电站可视化的实现

    实现光伏电站可视化,核心是在于通过直观的视觉界面,解决传统运维中低效巡检、数据孤岛、被动响应等痛点,从而提升运营效率并提供决策支持。这是种有效的技术手段,通过数字孪生、三维建模、数据融合等技术
    的头像 发表于 10-21 17:29 872次阅读
    光伏电站<b class='flag-5'>可视化</b>的实现

    如何使用协议分析仪进行数据分析与可视化

    使用协议分析仪进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键方法,涵盖从数据采集到可视化的全流程:、数
    发表于 07-16 14:16

    工业设备可视化管理系统是什么

    工业设备可视化管理系统是种基于物联网(IoT)、大数据、云计算、数字孪生等技术,对工业设备的运行状态、性能参数、维护信息等进行实时监测、数据整合与可视化呈现的智能管理平台。它通过将复杂的设备数据
    的头像 发表于 05-27 14:56 737次阅读
    工业设备<b class='flag-5'>可视化</b>管理系统是什么

    工业设备数据集中监控可视化管理平台是什么

    工业设备数据集中监控可视化管理平台是种用于整合、监控和可视化工业设备数据的综合性系统,旨在帮助企业实现设备数据的集中管理、实时监控和可视化展示,从而提升生产效率、优化设备运行状态并支
    的头像 发表于 05-06 11:10 837次阅读

    VirtualLab Fusion应用:3D系统可视化

    描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内部的光传播情况
    发表于 04-30 08:47

    可视化组态物联网平台是什么

    可视化含义:组态是种用于构建复杂物联网系统的工具,它提供了丰富的图形组件和可视化元素,使得用户可以通过简单的拖拽操作来创建自定义的界面。可视化
    的头像 发表于 04-21 10:40 702次阅读

    VirtualLab Fusion应用:光学系统的3D可视化

    3D 系统视图: 无光可视化系统 选项 - 选择要显示的元件 右键单击文档窗口,菜单上将显示详细选项。第一个选项 \"Select Elements to Show\"允许对文
    发表于 04-02 08:42

    可视化数据大屏:连线构建视觉新秩序 #数据可视化 #可视化大屏

    可视化
    阿梨是苹果
    发布于 :2025年03月18日 16:12:04

    VirtualLab Fusion中的可视化设置

    摘要 VirtualLab Fusion中的全局选项对话框可以轻松定制软件的外观和感觉。还可以保存和加载全局选项文件,以便可以轻松地将偏好设置从设备转移到另一个设备。本文档说明了与可视化
    发表于 02-25 08:51

    VirtualLab Fusion应用:光波导k域布局可视化(“神奇的圆环”)

    ,光可以在TIR(全反射)作用下传播,并与光导表面上不同类型的光栅结构相结合,以耦合光进出。在VirtualLab Fusion中,k-Layout可视化工具提供了种在k域中强大的图解方法,用于分析
    发表于 02-21 08:53

    七款经久不衰的数据可视化工具!

    工具 · D3.js:D3.js 是基于 JavaScript 的数据可视化库,允许开发者创建丰富的交互式图表。它具有极大的灵活性,但需要编程知识,因此适合开发者或具有技术背景的用户
    发表于 01-19 15:24

    光学系统的3D可视化

    视图 3D 系统视图: 无光可视化系统 选项 - 选择要显示的元件 右键单击文档窗口,菜单上将显示详细选项。第一个选项 \"Select Elements to Show\"
    发表于 01-06 08:53

    什么是大屏数据可视化?特点有哪些?

    大屏数据可视化是指通过大屏幕展示大量数据和信息,以直观、可视化的方式帮助用户理解和分析数据。这种展示方式通常用于展示复杂的数据集、实时监控系统、企业管理仪表盘等。以下是关于 大屏数据可视化 的详细
    的头像 发表于 12-16 16:59 1006次阅读

    如何找到适合的大屏数据可视化系统

    选择合适的大屏数据可视化系统是企业或组织在数字转型过程中至关重要的步。优秀的大屏数据可视化
    的头像 发表于 12-13 15:47 810次阅读