五个创建交互式图表的Python库

简介:

数据可视化专家Andy Kirk说过,数据可视化分为两类:探索性可视化图表和解释性可视化图表。解释性可视化图表的目标是进行描述——它们是根据对事物表面的关键线索而被仔细构造出来的。


另一方面,探索性可视化图表建立了与数据库或主题事件的互动,它们帮助用户探索数据,让他们发掘自己的观点:发现他们自己认为相关的或者感兴趣的事物。


通常,探索性可视化图表是交互式的。尽管现在有许多Python绘图库,但只有少数可以创建能够使你在线嵌入和发布的交互图表。今天与大家分享五个我们最喜爱的Python绘图库。


◆ ◆ ◆

mpld3



自定义插件示例


Mpld3 将Phython的核心绘图库matplotlib和备受欢迎的JavaScript图表库D3结合在一起,创建了与浏览器兼容的可视化图形。你可以在matplotlib中绘制一张图表,运用Phython和JavaScript插件增加交互功能,然后用D3渲染。


Mpld3包含缩放、平移和增加提示工具条(当鼠标悬浮于某一数据点上,出现提示信息)等内置插件。然而,Mpld3的真正亮点在于它齐全的API,允许让你创造自定义插件。如果你熟悉D3和JavaScript,就可以创造无穷尽的各种图形。


当你准备发布图形的时候,在最后添加一行额外的代码,把你的图形转换成HTML和JavaScript字符,就可以嵌入到任何网页中。


Mpld3 最适用于小型或中型数据库。带有成千上万数据点的图形会降低浏览器处理速度。


◆ ◆ ◆

pygal




基本点图


Pygal是制作漂亮的即用图表的优选绘图库,它只需要编写很少的代码。每种表格都被打包成一个类函数(如:pygal.Histogram()制作柱状图, pygal.Box() 制作箱型图),并且它有各种色彩默认风格。如果想要更多掌控,你可以配置各种图表元素——包括大小、标题、标签和渲染。


图表默认显示工具提示栏,但是目前不能放大、缩小或者平移图表。


你可以通过SVGs的形式导出图表,并且把它们加载到带有嵌入标记的网页中,或在HTML中直接插入代码。像mpld3一样,pygal适合更小型的数据库。


◆ ◆ ◆

Bokeh




交叉过滤器示例


Bokeh受到《The Grammar of Graphics》中概述的概念启发。 你可以把各个组件逐个叠加在一起来创建最终的图表——例如,你可以以坐标轴为起点,添加点、线、标签等。


图表可以输出为JSON对象、HTML文件或者交互式网络应用。Bokeh在允许用户在浏览器中操作数据方面做得尤为突出,用户可以通过滑动和下拉菜单进行筛选。与mpld3一样,你可以在其中缩放和平移操作图表,但是也可以关注通过框或套索选中的一组数据点上。


◆ ◆ ◆

Holo Views



利用Bokeh后端的地图


HoloView实际上并不是一个绘图库。相反,它让你构建有助于可视化的数据结构。当你把数据移入HoloView 容器对象(Container object)中,比如用于多变量分析的网格矩阵(GridMatrix)或用于显示相邻成份的布局(Layout)时,你可以直观地探索数据。在matplotlib或Bokeh后端中绘图是分开进行的,因此,你能够专注于数据,而非编写绘图代码。

HoloViews提供的主要交互功能是滑动条,因此,人们能够通过一个变量来观察它的影响。当使用Boken后端时,你可以结合滑块和Bokeh的工具探索图形,例如对它进行缩放和平移。


HoloViews融合了Seaborn和pandas,扩大了pandas数据帧和Seaborn的统计图表的功能。


◆ ◆ ◆

plotly



范围滑块示例


从简单的条形图表到复杂的3D网格图形,Plotly拥有广泛的具有出版物品质的图表类型。


Plotly是一个默认基于网络的服务,但是你可以在Python中使用离线库,并且上传图表到Plotly免费公共服务器或付费私人服务器。从那里,你可以把图表嵌入到网页中。


所有的Plotly图表包含工具提示,一旦利用Plotly的JavaScript API把图表嵌入后,你就可以在其顶部设置自定义控件(如滑块和筛选)。


另一种在Plotly中操作和分享图形的方式是在Mode中进行操作。你可以用SQL拖入数据,在Phthon Notebook中,利用Plotly离线库绘制查询的结果,之后把交互式图表添加到报告中。这份报告以可分享的URL在线,也可以嵌入其他页面,例如下图中展示的,从1950年开始,乐高积木套装尺寸是如何改变的:



原文发布时间为:2016-11-28

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
4月前
|
人工智能 前端开发 自动驾驶
Loop Engineering 已死?Graph Engineering 是什么?我好像在哪里见过
Graph Engineering 刷屏,后端第一反应是这不工作流引擎吗?本文聊它到底是什么、Loop 真死了吗、什么场景才值得上
Loop Engineering 已死?Graph Engineering 是什么?我好像在哪里见过
|
3月前
|
人工智能 JSON 安全
MCP协议入门:理解Model Context Protocol及其在AI开发中的应用
MCP协议(Model Context Protocol)入门教程,详解MCP协议架构、工作原理及在百炼平台中的应用。立即学习,掌握AI应用开发新标准!
345 0
|
3月前
|
SQL 关系型数据库 MySQL
误UPDATE清零十万条余额,47分钟靠binlog全量救回
从一次误UPDATE全表清零余额的事故切入,解析binlog ROW格式的恢复原理,附mysqlbinlog精确时间点提取脚本,以及my2sql、lightning等8.0可用闪回工具的实战用法
|
5月前
|
人工智能 弹性计算 5G
【AI 尝鲜实验室】上新 | MiMoCode:终端原生 AI 编程助手,越用越懂你
MiMoCode是小米MiMo团队开源的终端原生AI编程助手(GitHub 10k+ Star,MIT协议),支持读写代码、执行命令、Git管理及跨会话项目上下文记忆。本实验通过阿里云计算巢一键部署至云端ECS,开箱即用,面向全栈/独立开发者及运维工程师。
|
5月前
|
人工智能 自然语言处理 安全
权威解读 | 《人工智能拟人化互动服务管理暂行办法》落地,AI“情感操纵”时代终结
随着AI从工具升级为“情感伙伴”,虚拟恋人、AI子女等引发沉迷、隐私与伦理风险。2026年4月10日,五部门发布全球首部《人工智能拟人化互动服务管理暂行办法》,7月15日起施行,严划六条红线,首创“情感操纵”禁止条款,设未成年人“五重隔离网”及2小时强制提醒等硬性要求,众森企服详细为您解读。
1302 0
|
消息中间件 搜索推荐 调度
RocketMQ实战—8.营销系统业务和方案介绍
本文详细介绍了电商营销系统的业务流程、技术架构及挑战解决方案。涵盖核心交易与支付后履约流程,优惠券和促销活动的发券、领券、用券、销券机制,以及会员与推送的数据库设计。技术架构基于Nacos服务注册中心、Dubbo RPC框架、RocketMQ消息中间件和XXLJob分布式调度工具,实现系统间高效通信与任务管理。针对千万级用户量下的推送和发券场景,提出异步化、分片处理与惰性发券等优化方案,解决高并发压力。同时,通过RocketMQ实现系统解耦,提升扩展性,并利用XXLJob完成爆款商品推荐的分布式调度推送。整体设计确保系统在大规模用户场景下的性能与稳定性。
RocketMQ实战—8.营销系统业务和方案介绍
|
10月前
|
存储 分布式计算 安全
阿里云企业级云服务器:c9i、g9i、r9i实例的性能、适用场景与选型参考
阿里云第9代云服务器c9i、g9i、r9i实例,搭载全新CIPU架构与英特尔®至强®6处理器,实现算力与效率双重飞跃。计算型c9i适配机器学习推理、视频编码等CPU密集场景;通用型g9i平衡CPU与内存,满足企业应用、中小数据库需求;内存型r9i以1:8至1:20高配比,支撑Hadoop/Spark集群等内存密集任务。
|
11月前
|
JSON 前端开发 安全
用自定义注解 + 拦截器实现登录鉴权
通过自定义注解 `@Login` 结合 Spring 拦截器,实现声明式登录校验。无需重复编码,自动拦截未登录请求,提升代码可维护性与安全性,适用于前后端分离架构的权限控制实践。
|
11月前
|
设计模式 人工智能 JavaScript
用Cursor重构烂代码的真实案例
上周三接手一个1200行“烂代码”JS文件,变量名混乱、逻辑嵌套深、功能混杂。借助AI工具Cursor分析坏味道、提取常量、拆解函数、重构条件判断,两天完成重构:代码从1200行拆为6个清晰模块,函数平均长度降至22行,嵌套从8层减至3层。加新功能不再胆战心惊。重构关键:先理解再动手,小步测试,善用AI辅助但不盲信。
|
11月前
|
人工智能 监控 测试技术
n8n+AI模型实现用例智能生成与脚本自维护
本文介绍如何在n8n中构建AI驱动的自动化工作流自维护系统。通过监控、AI生成测试用例与智能修复,让脚本具备“免疫系统”,降低维护成本,提升稳定性,实现人机协同的高效运维。