网上数据可视化和分析的顶级库

发布时间:2026/5/19 23:47:02

网上数据可视化和分析的顶级库 原文towardsdatascience.com/the-most-advanced-libraries-for-data-visualization-and-analysis-on-the-web-e823535e0eb1https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/64ba562f2fa54e3048f37a0f9651535b.png这里展示的示例可视化是由这些库生成的。这些以及其他所有图片都是由作者从屏幕截图中组合而成的。在这篇新文章中我展示了我在经过仔细分析性能、灵活性和功能丰富性后对最先进和强大的基于 Web 的数据可视化和分析库的探索结果。我选择的一些库并不流行但它们提供了令人惊讶的功能和特性这些特性完全超越了其他更广为人知的替代品。我选择的用于展示的库功能如此丰富以至于我几乎没有空间来关注一些突出的点强调它们的亮点并与更广为人知的替代品进行比较同时邀请您亲自测试它们——它们都是免费试用的其中一些甚至为学术界和教育提供了免费版本阅读完这篇文章后请继续关注未来的文章其中我将进一步探讨我选择的案例——即 Web 数据可视化库中的“精华”部分。数据可视化无处不在是数据分析的核心从早期的探索性浏览到最先进的处理还包括交互式和视觉上吸引人的数据、结果和结论的展示与沟通。我主张在所有阶段基于 Web 的数据解决方案提供了迄今为止最强大的可视化手段。这一点如此之强以至于即使是基于 Python 或 R 等系统的数学或统计处理的最先进程序最终也会选择某种基于 Web 的可视化——例如R 的 shiny 应用。在我看来基于 Web 的可视化为什么如此成功和强大好吧原因有很多包括极其便携性通过在 Web 浏览器中运行相同的代码可以原生地运行在任何具有现代 Web 浏览器的设备上——字面上没有任何技巧极其简单的部署只需访问一个 URL这个功能同样消除了与安装、更新等相关的一切障碍。模块化库是动态加载的这反过来又使得……在同一网页上集成多个可视化的可能性在某些情况下甚至可以通过编程将它们耦合起来以实现非常完整的应用。图形的交互性使得图表能够对用户的点击和鼠标手势做出反应这在非基于 Web 的可视化中存在但在 Web 情况下可视化可以与 DOM 的其他元素交互包括其他可视化元素从而实现高度复杂的应用。如果你认为基于 Web 的可视化可能会在性能即处理和显示大量数据的能力方面存在严重问题或者在输入和输出格式方面的灵活性以及其他阻碍其严肃使用的难题那么我将在这里尝试证明你是错的。我将通过展示四个非常精心挑选的基于 Web 数据可视化库的强大功能来阐述我为什么支持基于 Web 的可视化。我将专注于那些完全基于浏览器、100%针对 Web 可视化的库并且不会涵盖基于桌面或服务器程序的数据分析 Web 部署。为什么我强调非常精心挑选的因为如果你在谷歌搜索或询问 ChatGPT 关于数据可视化的 Web 库答案总是出现相同的列表这些列表始终遗漏了一些非常强大但不太受欢迎的选项。这正是我将在这里讨论的库它们按字母顺序排列分别是amCharts、CanvasJS、CanvasXpress和HighCharts。它们都是付费的但其中一些要么有学术和教学目的的免费许可证要么有嵌入品牌标志的免费版本你可以在付费时移除实际上你将在我所编写的和部署的示例中看到它们都在运行而我没有花费一分钱。在本文中我将详细介绍我选择的四个库同时也会提及其他更广为人知的库如 Google Charts、Plotly、D3 等仅为了比较目的简要介绍以便突出我“精选的四库”的优越特性同时对这些更受欢迎的库给予公正的评价。我将按字母顺序描述这些库以避免任何无意识的偏见。那么让我们开始吧在重要的介绍之后。介绍为什么选择这些目前市面上有大量的数据可视化库其中一些非常受欢迎例如 D3.js它拥有繁琐的语法和各种派生版本使得使用起来更加方便仅举两个例子如专门用于金融图表的 Taucharts 或 Techan还有流行的 Chart.js 和 Plotly以及科技巨头谷歌的 Google Charts 等。就像有大量的此类库一样也有大量的“列表文章”我的意思是列出可视化库的文章在许多情况下甚至没有深入探讨任何库——也许甚至是由机器自动编写的因此缺乏洞察力和价值。但即使是在“好的”列表文章中我也对他们有一些不喜欢的地方。它们通常倾向于限制其关注点为完全免费的库这完全没问题但可能会掩盖更高级选项的存在您或您的客户可能愿意为此付费。此外尽管一些高级库是独家付费的但其他库确实有一些灵活性例如提供允许在教育、测试或学术、非营利环境中免费且功能齐全使用的许可证。一定程度的主观因素如通过下载次数、采用者数量、Stack Overflow 上的讨论量等衡量的受欢迎程度。支持的可视化种类繁多比如散点图、饼图、蜡烛图、地理数据映射、流程图、这些图表的 3D 版本以及其他众多选项——但稍后我们将在本文中看到我选择的五个库中的一些甚至更具创新性的可视化。渲染技术主要是基于对象与基于画布的后者通常更适合处理大型数据集但图形质量较低——但所有这些在这里都是可辩论的性能从库可以处理和显示的数据集大小来衡量——但在这里列表文章往往忽略了我会在这里介绍的一些库这些库可能是顶级性能者。易用性这是一个非常重要的点我的四个选择可能在这个方面做出了一些牺牲以换取更多的功能、更好的性能甚至内置的数据分析功能——后者对于实现无需或几乎无需编程的高级数据分析非常重要而更受欢迎的库通常不支持原生地实现这一点。特别是像 D3.js 和其他常见库中那样通过 SVG 进行绘图对于交互式和动态图形来说很棒但当涉及大量元素时会面临重大的性能挑战。另一方面基于画布的绘图在渲染大量元素时效率更高但可能不太适合高度交互式和动态的可视化。我们将看到我选择的四个库如何提供两全其美的解决方案使用画布快速但交互式地生成图形以及导出 SVG 和其他基于对象的格式。最受欢迎的库的一个重大限制而我选择的一些库并没有这个限制就是它们相当排外地仅限于数据绘图但它们不提供任何直接的数据分析功能。例如如果你想为一系列数字绘制直方图你必须编写获取桶和它们的计数的代码然后将它们传递给库的条形图绘制函数。同样如果你想显示带有线性回归的散点图你必须编写执行拟合的代码然后将两个图表传递给库一个用于数据一个用于线性回归。我选择的一些库不仅仅是绘图库而是完整的数据分析库它们也可以进行数据可视化。而且我无法强调得更多它们可以自己执行多种数学和统计分析全部内置我选择的一些库不仅仅是绘图库而是专门从事数据可视化的完整数据分析库 […] 它们可以自己执行多种数学和统计分析全部内置对于流行的库来说大多数并非全部都是免费的这反过来使得它们拥有庞大的用户群这极大地促进了学习和故障排除。同样由于互联网上关于非常流行的库的问答非常丰富大型语言模型对它们足够了解它们可以在编写代码时帮助你——这在本文讨论的更强大但不太流行的库中是不会发生的除了一个开发者已经考虑了这一点并相应行动的库。请注意使用大型语言模型所知的库可以非常有用例如GPT-3 对 Google Charts 库的卓越掌握使我能够创建一个聊天机器人该聊天机器人使用这个库从自然语言提出的问题或请求中创建定制的图表通过让 LLMs 访问……进行自然语言请求的强大数据分析与绘图使用不受欢迎的库时你可能需要做大量的示例提示以及/或者对语言模型进行微调以“教会”它如何使用那个特定的库。在所展示的案例中只有一种情况开发者已经为你做了这件事开始工作对于我选择的四个库中的每一个我为你带来一个介绍部分以便了解每个库的基本知识。一个关于“独特功能”的部分或者说是一些大多数其他库所缺乏的突出显示和/或非常特殊的功能。这个部分长度不一取决于我在探索中发现了什么。一个关于库的编程和使用的部分我在其中尝试通过它们的 GUI 和特别是通过将它们编码到 Web 应用程序中来传达我对它们的印象。一个关于性能的章节我将基于开发者的说法以及我自己的编码来深入探讨这个重要方面。对于后者我选择了编写代码来创建带有显示 x、y、z 值后者由气泡半径表示的工具提示文本的气泡图并用不同的颜色给气泡上色并测试了每个库对增加气泡数量的稳定性。最后一个关于许可和成本的章节。如果你碰巧是这些库中的一个的开发者这里有一个简短的免责声明如果你正在阅读这篇文章并且是这些库中的一个的开发者并且你发现信息不准确或示例或我的解释中存在问题或者你认为我遗漏了一些非常重要的功能请不要个人化。这些库都非常庞大功能丰富当然我无法全部详细探索请通过评论或我的邮箱联系我告诉我你发现了什么以及你希望我进行的任何编辑。amChartsamCharts 是一个集成的模块包专门用于图表制作核心 amCharts、在地图上显示数据amCharts 地图以及金融分析amCharts 股票图表。通用数据绘图核心支持从标准类型的图表如柱状图、条形图、折线图、面积图、散点图、饼图、环形图、热图、气泡图或雷达图到一些更复杂的图表并非所有库都支持如极坐标图、仪表盘、漏斗图、金字塔图、弦图、桑基图、太阳图、时间线、树状图以及其他用于可视化非纯数值数据的工具。一个非常重要的点是与大多数竞争对手不同这个库不仅限于数据可视化还可以自行执行一些计算。例如要使用词云工具你不需要输入包含词频的词列表只需提供一个包含词云文本的字符串工具会自动计算词云。我们将看到另一个库CanvasXpress将这一能力发挥到极致包括大量的数据处理方法。从美学和交互性的角度来看这个库并没有太多突出之处尽管它非常完整其可视化效果简洁明了图表和地图的各种元素、颜色、图案、一些动画、工具提示文本、图例、标签、坐标轴和网格、标记和注释等都可以自定义。amCharts 在数据加载和处理功能上非常灵活支持 CSV、JSON、XML以及用于地图数据的 GeoJSON 等并且提供包括图形格式PNG、JPG、PDF、SVG和数据格式如 JSON、CSV 以及 XLSX可直接在 MS Excel 中打开在内的导出选项。独特功能几个库提供了地图图表功能。amCharts 提供了相当广泛的捆绑地图选择从国家到非常区域的地图每个地图都有高细节和低细节版本。利用 GeoJSON 标准这些地图易于访问并且平台支持创建自定义地图如果所需的地图未包含在内——这一点非常重要。如果您对地图图表感兴趣还有许多其他功能值得探索。虽然所有主要的绘图库至少提供一种通常是几种专门针对金融的图表但 amChart 的整个模块专门针对这一点使其在功能上变得非常丰富。该模块提供了超过 30 个针对金融的完全自动化的指标仅举几个例子移动平均收敛/发散、布林带、量价分析等以及注释工具如水平平均值、斐波那契极限、在线回归、各种趋势线等以及用户添加自己注释的选项。仍然在谈论金融模块可以激活各种自动转换和格式化例如当添加比较指数时比较功能强制图表自动切换到“百分比模式”。此外各种内置控件增强了用户与特定于金融功能的特点的交互例如蜡烛图、开盘价-最高价-最低价-收盘价指标、时间粒度切换等。性能、编程和用法amCharts 使用 canvas 渲染避免使用 SVG 并最小化 DOM 操作以及不同元素的分层以最小化不必要的重绘所有这些都有助于实现快速渲染。它将自己定位为“疯狂灵活且速度极快”据说是一个“简单而强大且灵活的即插即用数据可视化解决方案配有详细的文档和高效的支持”。该库的编程已经优化以实现快速数据解析、高内存效率和低二进制大小完整包 400 kb从而实现快速下载和高效性例如允许在同一页面上存在多个图表而不会使浏览器崩溃。此外每个细分功能都分离到文件中因此您可以只加载您需要使用的部分——比如说核心库加上地图模块。该包与流行的 Web 开发框架和工具如 Angular、React、Vue.js 等集成允许开发者轻松地将其强大的数据可视化功能集成到复杂的 Web 应用程序中。在我对笔记本电脑上的测试中我发现这个库非常稳健且性能出色能够完美地显示多达 50,000 个数据点的 xyz 数据气泡图和随机颜色在我浏览图表时图形和数据标签的更新流畅。当数据点达到 100,000 个时你会感觉到性能的下降而当数据点达到 200,000 个时流畅的浏览变得不可能——但即使有 500,000 个气泡网页也不会崩溃。例如这里是对一次运行的部分进行缩放的展示包含15,000 个点您可以通过此链接在此尝试其性能https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9d3da4fb74667835bfcac6f36c2c0113.pngamCharts 无缝显示 15,000 个气泡在此尝试。网站、许可和费用您可以在 amCharts 的官方网站上探索演示、教程和文档网址为www.amcharts.com/.amCharts 目前提供所有产品即现在版本 5以及一些遗留版本的免费下载和使用。免费版本的主要缺点是在图表的角落显示一个小型标志——对于实际用途来说不是什么大问题但可能是在非常专业的项目中您想要去除的东西。提供无品牌图表的商业许可证所有许可证都是付费的但起始价格合理。CanvasJSCanvasJS 将自己定位为一个基于简单 API 的 JavaScript 库用于高性能和多功能的数据绘图拥有超过 30 种图表类型尽管这个数字与其他库的数量在同一数量级可能甚至略低。它声称有大量的文档可用并且作为一个关键卖点目前被 NASA、Microsoft、Samsung 和其他许多大公司使用。然而请记住我之前提到的观点当涉及到数据可视化的库时受欢迎并不一定是最好的保证。CanvasJS 支持相当标准的图表类型如线形、柱形、条形、样条、面积、饼图、环形图、股票图表、一些类型的 3D 图表等。它还支持各种相对标准的功能如数据标签、工具提示、注释、缩放、平移、多个轴、对数轴和动态更新。独特特性对我来说这个库在真正独特的特性方面有点局限除了其极端轻量级见下文然而这部分可能完全可以通过与其他一些库相比特性较少来解释。对于程序员和用户来说这个库的简单使用方法是一个重要的优点它在许多方面类似于 Google Charts因此可能被大型语言模型所理解。最后该库的网站多次强调这个库的强大跨设备兼容性然而这是一个 HTML5-JavaScript 核心固有的特性适用于所有在此展示的库实际上可能适用于大多数其他基于 Web 的数据可视化库。尽管如此这是一个值得强调的重要观点——并且竞争对手也应该强调这一点编程和使用CanvasJS 是围绕一个 API 逻辑构建的这使得创建和定制图表变得容易。而且它与客户端和服务器端 Web 开发框架如 React、Angular、jQuery、PHP、ASP、JSP 等兼容。与他们的声明一致CanvasJS 拥有一个相当大且活跃的用户和开发者社区他们不断贡献新的想法和解决方案这是我选择的其它库所缺乏的因为它们不太受欢迎。CanvasJS 提供了高度的定制性允许你控制图表外观和行为的各种方面。此外你可以使用预设的主题和模板快速应用预定义的样式和设置或者使用完全定制的图表类型你可以通过其插件架构轻松构建。其他库如 D3.js 也提供了相当多的灵活性和可定制性但需要更多的编码和对数据科学概念的理解。另一方面像 Chart.js 和 Plotly.js 这样的替代方案更容易使用和集成但它们提供的定制选项较少。性能CanvasJS 声称是可用的最快的数据可视化库之一能够在毫秒内渲染数十万个数据点。这对于使库非常适合需要高性能和可扩展性的应用程序至关重要。在我的笔记本电脑上的测试中我发现 CanvasJS 保持稳健和高效能够在至少 500,000 个气泡的同时保持令人印象深刻的平滑显示并且在浏览图表时保持图形和标签数据的流畅更新。这比上面提到的 amCharts 显示的数据点多一个数量级但少于即将介绍的 CanvasXpress。此外与 amCharts 逐渐失去性能不同我的测试中 CanvasJS 在大约 700,000 个点时突然挂起。不考虑评论气泡图的测试揭示了该库在此类图表上的一个不幸的限制它缺少 z 值的自动缩放这些 z 值调节气泡的半径而且你不能自己定义最小和最大值。因此你从库的卓越性能中获得的好处在过于拥挤的图表中就丢失了。更糟糕的是你不能滚动或缩放来浏览图表而其他所有库都允许你这样做。作为一个例子这里是一个示例图表的快照100,000 个气泡你可以在此尝试https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2b3143d18972df763be20278ad8d9ed5.pngCanvasJS 可以无故障地显示 100,000 个气泡但也有一些重要的缺点参见文本并在此尝试此示例)。网站、许可和费用CanvasJS 主要是一个付费库提供多种许可级别的选择。虽然它确实提供了一个功能有限的免费版本但商业用途和访问高级功能需要付费许可。您可以从其官方网站canvasjs.com/获取 CanvasJS在那里您可以下载库、查看文档、浏览画廊并购买许可证。您还可以通过 NPM 安装 CanvasJS 或直接从 CDN 获取源代码。CanvasXpress尽管这个库具有出色的数据可视化能力真的非常出色您很快就会看到这就是它进入这个列表的原因CanvasXpress 实际上主要将自己定位为数据分析库。确实CanvasXpress 作为一个独立的库旨在用于可重复和可追踪的数据分析这是大型严肃组织分析管道中的核心元素在这些组织中大量数据由多级多个人处理。实际上这个库是在一家主要制药公司诞生的我偶然发现的因为在可视化背后的所有操作都对于可重复性和可追踪性至关重要。独特功能更令人惊讶的是CanvasXpress 跟踪的操纵类型包括从数据处理到去除异常值计算转换如将数据分箱到直方图或热图中或通过回归拟合数据等大量操作等等。这些程序及其结果都由系统审计这意味着它们都原生地硬编码到库中。这反过来又意味着您不必自己编写任何代码就能实现甚至高度复杂的计算——类似于我们在 amCharts 的词云工具中看到的情况在那里您只需输入单词所有计数和字体缩放都由库计算但被推向了极端下面将进一步说明。上述功能累积起来为 CanvasXpress 提供了独特的广泛数据审计能力这是我所能研究的范围内。此外当库以可能仅限于图像数据的格式如 SVG 或 PNG 文件写入输出图形时它实际上将这些起始数据和用户或源脚本执行的操作注入到这些文件中以精确地保存视图这对我来说真是令人震惊。CanvasXpress 的开发者找到了方法允许程序员和用户通过最少的代码或甚至没有代码就能将完整的数据分析功能融入可视化中。例如您可以输入一个值数组并要求库绘制直方图它会自动计算桶和计数与其他所有库不同您将不得不编写计算直方图的代码然后使用库的条形图工具来显示桶和计数作为直方图。在 CanvasXpress 中用于计算直方图的程序以及用户通过图形界面或预编程代码进行的任何后续修改例如图形、数据选择或过滤等所有这些都与起始数据一起进入任何图形输出文件。然后在新的 CanvasXpress 会话中您可以加载 PNG 或 SVG它将显示为不仅仅是静态图像而实际上是一个 CanvasXpress 可视化本身如果 SVG 或 PNG 是由程序生成的当然。从支持的内容角度来看CanvasXpress 覆盖了 amCharts、Plotly 和其他库支持的大多数可视化类型除了某些非常具体的案例例如词频图。它不仅包括散点图、折线图、条形图、雷达图、气泡图、热图、饼图、3D 版本、地理数据映射、流程图、箱线图、小提琴图、太阳花图、维恩图等还包括专门用于数据拟合的图形再次强调这些计算由库本身完成甚至可以通过 LOESS 达到多维度局部回归还包括相关性分析和统计分析包括具有图形输出的各种任务测试。此外还有一套可视化专门针对与制药相关的数据基因组学、通路、网络等。因此这里也有一些独特的特点。编程和用法在上述实用功能的基础上CanvasXpress 完全集成到 R 和 Python 代码中以及 shiny 应用程序中使得熟悉 R 或 Python 的数据分析师能够从库的可视化功能中受益。该库不仅与 R 和 Python 集成还与客户端和服务器端 Web 开发框架集成包括 PHP、Node.js、React、Angular。CanvasXpress 支持读取和写入多种文件格式强调输出总是注入所有原始数据和任何上述说明中的操作请注意虽然这对于审计功能和以可编辑形式共享图形很有用但它也使得文件比预期的要大得多。另一个有趣的功能是它可以在同一网页中运行的不同实例之间广播事件无需额外配置。例如在 CanvasJS 与例如 D3.js 元素集成的情况下这允许开发者轻松构建非常复杂的应用程序就像之前展示的 Google 图表库一样。最后一点要强调的是尽管这个库的功能非常先进但相对容易使用。此外文档非常全面并为 40 多种不同的图表类型中的每一种至少提供了 3 或 4 个示例。此外示例以代码的形式提供适用于包括 JavaScript、R 和 Python 在内的各种平台当然在 Codepen 或 Jupyter 笔记本等平台上可以运行这些代码片段。一个缺点是一些示例中包含了一些小错误可能是由于它们是自动生成的然而我成功地修复了它们而我对这个库并不完全是专家问题通常出在格式错误的注释中在加载库的 URL 中等等可能是因为代码是自动生成的考虑到有大量示例可用。与其他库相比另一个反对这个库的观点是尽管图形即使在高负载下也非常流畅但它们并不像这里讨论的其他库和更主流库的图形那样吸引人。甚至 GUI 项目也没有非常流畅这进一步被库的巨大功能集所复杂化。说到这个如此庞大的工具集很容易让人迷失方向尤其是在尝试通过 GUI 使用库时——可能在使用程序化的功能时不会太多但我的经验有限。当然当你学会使用 GUI 和库时你最终可能会习惯这些命令。然而按钮上缺少工具提示文本并不利于这一点。希望库的下一个版本能够填补这些空白释放其全部真正非凡的潜力。性能除了持续不断的数据分析和审计的特殊功能之外尝试 CanvasXpress 时很明显它的性能非常高正如这个显示超过一百万个数据点的热图所示。在我对气泡图的测试中我发现 CanvasXpress 在 2,000,000 个气泡时开始显得有些沉重而且它仍然工作得相当好只是稍微有点卡在 500 万个气泡时也是如此在所有情况下可视化、缩放和平移仍然响应灵敏当你将鼠标移过视图时工具提示标签的更新也非常流畅。这是我在这篇文章中选择的 4 个库中最好的性能也可能是目前所有库中最好的。在这里以 1 百万个气泡顺畅运行这是一个你可以在此链接中测试的示例https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/083dc2c48fffb00126ffb13a99b30ede.pngCanvasXpress 展示令人印象深刻的 1,000,000 个气泡在此尝试)。网站、许可和成本CanvasXpress 对个人和教育用途是开源的商业用途有双重许可。这意味着如果您是教育工作者、学生甚至是进行非营利性研究的学者您可以使用该库的全部功能。相反网站明确指出未经 CanvasXpress 的明确许可和许可禁止商业使用。要获取该库测试其数十个可能超过一百个示例并了解更多关于其许可模式的信息请访问他们的网站www.canvasxpress.org/HighChartsHighcharts 将自己定位为“在高度竞争的数据可视化市场中图表工具的安全选择”。我完全同意这个领域确实非常竞争激烈正如我们在这里看到的那样该系统由可能是在这里展示的库中最大的开发者团队构建它作为一个包含五个包的集合运行这些包专门用于通用绘图、股票/金融、地图、仪表板和甘特图——后两者在一些其他讨论的库中也有提供但只有一种图表样式。该库也被各种技术巨头用于他们的可视化其中包括世界上 100 家最大公司中的 80 家。我知道我之前说过这不是质量的保证然而库的功能和网站的品牌推广都真正地将这个库推向了考虑范围见下文。独特特性最引人注目的第一个特点当然是积极的不是在库本身而是在其网站上。它非常完整提供了仪表板工具可以快速在线创建或编辑图表而无需任何编码还有一个工具通过使用 GPT 模型可以帮助通过自然语言指令创建可视化还有一个在线常见问题解答和聊天机器人用于解决有问题的疑问还有链接到可以帮助您设置可视化的第三方公司甚至还有一个关于数据可视化的有趣文章的博客。该库本身提供了一套相当大的图表和可视化包括各种类型的甘特图与其他库相比相当独特。与 CanvasXpress 类似但发展较少HighCharts 也执行一些基本的数据处理。在其他独特特性中HighCharts 有一个“声音响应模块”使图表能够响应用户的操作有助于提高可访问性。在网站上的一个示例中一张地图展示了法国各个地区的人口密度当用户探索地图时可视化会触发速度不同的声音以代表不同的人口密度同时口头宣布法国地区的名称。最后一些交互式的图表类型似乎很独特例如有一种方法可以添加事件监听器这可以用来允许用户直接与绘图进行交互。不确定这有什么用但在一个示例中用户可以通过鼠标点击交互式地按需添加点。编程和使用HighCharts 在集成度方面与 CanvasXpress 竞争激烈能够达到 .Net、Node、PHP、Python、R、Java 等编程框架以及 Angular、Vue 和 React 等 Web 开发框架。关于编程的一个特殊功能是你不仅限于 JavaScript就像在这里讨论的所有其他库一样因为 HighCharts 可以直接用 CSS 样式化例如对于设计师来说更为人所知。与其他一些但不是所有绘图库一样HighCharts 可以将多种不同类型的绘图组合在一起。因此例如你可以在其上绘制散点图和回归线 - 尽管与 CanvasXpress 示例不同在这种情况下你必须编写执行线性拟合的代码。对于程序员来说一个有趣的功能是示例可以直接复制粘贴或测试在 Codepen 中在我的测试中它们都直接工作。性能在我的笔记本电脑上对气泡图进行的测试中这个库的性能最差。它几乎可以处理 5,000 个气泡同时仍然允许合理流畅的浏览但到了 10,000 个气泡时就已经非常慢了在约 20,000 个气泡时则毫无用处。有了这些数字这个库在性能上明显落后于其他库。但继续阅读以了解公司自己的聊天机器人给我提供的解决方案我注意到的一个有利于这个库的特点是如果你设法进行了缩放即使因为系统饱和而没有看到动作发生一旦缩放足够高一切都会变得更加平滑。你可以在 这个包含 10,000 个气泡的示例中尝试这里我展示给你的是缩放效果https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/819ba215c287560511e7e124c6f1a5dd.pngHighCharts 在运行了 10,000 个气泡之后放大到大约 1/4 的绘图表面 (在此尝试此示例)。HighCharts 的支持聊天机器人给我提供的解决方案通过自然语言是激活一个由 WebGL 驱动的 “增强模块”这使得 HighCharts 能够渲染具有数百万数据点的视图。在尝试这种增强模式我需要编写一个额外的函数来获取随机颜色这些颜色由非增强版本自动提供时我发现该库可以有效地运行流畅的可视化、鼠标浏览和最多 1,000,000 个气泡的平移/缩放然后性能突然迅速下降。这种能力与 CanvasJS 的能力相比有优势后者也允许大量气泡但没有缩放命令。您可以在此尝试具有 500,000 个气泡的 增强模式在缩放之前看起来是这样的https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0ab3dffbf2f5352ec0841c4bded0a941.pngHighCharts 在增强模式下运行了 500,000 个气泡 (在此尝试此示例).网站、许可和费用学生和教育工作者可以免费使用 HighCharts您确实可以像上面我展示的那样免费运行测试。然后您可以在www.highcharts.com/咨询各种许可级别。结论您已经看到了这些库提供的疯狂数量的功能包括可用于通用和特定领域应用的可用可视化类型的多样性。我们还看到了 HighCharts 中独特的无障碍功能、强大的独特数据审计能力和 CanvasXpress 中用于数据分析的大量内置函数。我们还看到所有这些库都相当高效但性能差异很大对于我的特定测试来说表现最好的是 HighCharts 和 CanvasXpress。我个人认为amCharts 和 HighCharts 的图形是最吸引人的但请注意我没有花一分钟时间来调整我的示例的外观所以很可能经过适当的调整CanvasJS 和 CanvasXpress 也可以看起来同样吸引人。在撰写这篇文章的过程中我也亲身体验了所有这些库的网站和博客提供的丰富资源其中最突出的是 HighCharts 的聊天机器人它专门帮助您解决 24/7 的问题——这很重要因为尽管像 ChatGPT 这样的 LLM 确实了解这些库但它们可能并不足够深入地了解这些库无法像处理像 Plotly 或 Google Charts 这样非常流行的库一样帮助您编写代码。这里展示的所有四个库的共同特点是它们都可以作为模块进行编译或者直接通过脚本标签从 CDN 加载其中一些但不是所有都提供了只加载给定应用程序所需的模块的选项正如我们所看到的。而且我没有明确说明但可以从我的例子中明显看出的是所有这些库都有某种形式的免费测试形式——在此基础上一些确实提供了免费许可证如每项所述。有时候为产品和服务付费是值得的这可能也适用于基于网络的可视化库如果你需要这里看到的一些特殊功能。或者也许你或你的项目有资格获得免费版本因为一些这些库提供了免费版本。数据可视化网络库领域竞争非常激烈即使不深入到整个互联网我们也能轻易地数出 30 个库。这对我们用户和程序员来说都是有益的所以让我们仔细决定我们想要什么编码时的简单性使用时的简单性也许对我们应用来说吸引人的或交互式的图形是关键也许我们寻求内置的复杂分析功能而不想编写和优化选项的世界就在那里而你已经对这些选定的集合进行了深入分析。你可能喜欢的其他博客文章现代科学技术中大型语言模型的直接应用在去中心化平台上完成的第一项涉及大量计算的科学研究新 DeepMind 工作揭示语言模型的最高提示种子www.lucianoabriata.com我会写关于我广泛兴趣范围内的一切自然、科学、技术、编程等。通过电子邮件订阅我的新故事。要咨询小型工作*请查看我的**服务页面。你可以在这里联系我。在这里给我小费**.*

相关新闻