目录
在开始使用plotly.js之前,安装plotly
,我们将专注于学习与线条和条形图(如线图和条形图)相关的不同属性。在此之前,您还应该有一些基本知识,可以对不同的布局属性进行一些基本知识,该属性控制所有图表类型(例如字体,标题,X轴,Y轴等)所共有的方面。
首页 web前端 js教程 使用Plotly.js创建交互式图表,第1部分:入门

使用Plotly.js创建交互式图表,第1部分:入门

Mar 09, 2025 am 12:19 AM

>在标题为“从Chart.js开始”的系列中,您学习了如何使用Chart.js轻松创建基于响应帆布的图表。该系列涵盖了图书馆提供的七种基本图表类型。但是,您可能需要创建具有其他功能的更复杂的图表,以使这些图表交互式。

是最佳的免费使用库之一,以创建各种响应式,交互式和功能丰富的图表。在本系列中,您将学习如何使用plotly.js创建不同的图表,包括线图,条形图,气泡图表和点图表。这是一个建立在D3.js和stack.gl之上的高级声明库。以下是使绘图成为最佳JavaScript图表库之一的功能的列表:

您可以使用Plotly.js轻松创建交互式图表。您使用库创建的任何图表都配备了缩放,放大,平盘,自动缩放等功能。当您想研究具有大量绘制点的图表时,这些功能非常有用。所有这些事件均在API中公开,因此您可以在触发这些事件的任何一个时编写自定义代码以执行自己的操作。

高性能在绘制大量点时高性能使Plotly.js成为一个不错的选择。由于大多数图表都是使用SVG创建的,因此您可以在浏览器之间获得相当数量的兼容性,并且能够导出任何图表的高质量图像。但是,在DOM中绘制大量的SVG元素可能会对性能产生不利影响。该库使用stack.gl创建高性能的2D和3D图表。
    >
  • >
  • 您创建的任何3D图表都在WebGL的帮助下渲染,以充分利用GPU所提供的所有功能。
  • >

在开始使用plotly.js之前,安装plotly

,我们需要先安装它。通过运行以下命令:

>此选项可能是最优雅,最灵活的,可以使用许多不同的方法来安装库。但是,您将需要设置一个捆绑器,该捆绑器会自动将您使用的NPM软件包转换为浏览器可以处理的东西。此外,为了实际使用该软件包,您可能要使用ESM。您可以在此处阅读有关ESM的更多信息。

如果您想要快速的原型解决方案,也可以使用plotly.js cdn并直接链接到库:>在撰写本教程时,
npm install plotly.js<br>
登录后复制
登录后复制
登录后复制

>最新版本的库为2.14.0。缩小和压缩库后的文件大小为1.1 MB。非固定和未压缩版的大小为3.5 MB。如您所见,该库提供的一长串功能是价格。有七个不同的捆绑包:基本,笛卡尔,GEO,GL3D,GL2D,MAPBOX,FINALANCE和CRIGTH。您可以使用以下行获取这些捆绑包的CDN链接:

>另外,如果使用npm,则可以安装该捆绑包的软件包。
<script type="text/javascript" src="https://cdn.plot.ly/plotly-2.14.0.min.js"></script><br>
登录后复制
>

>
https://cdn.plot.ly/plotly-bundleName-2.14.0.min.js<br><br>// Therefore the basic bundle becomes:<br>https://cdn.plot.ly/plotly-basic-2.14.0.min.js<br><br>// and the cartesian bundle becomes:<br>https://cdn.plot.ly/plotly-cartesian-2.14.0.min.js<br>
登录后复制
,如果您只需要从单个捆绑包中绘制图表,则可以使用此方法来大大减少文件大小。这是有关每个信息的一些其他信息。

  • basic :此捆绑包包含直方图2D ,pie ,ctastternary 跟踪模块。该捆绑包的压缩和缩小版本的大小为238.2 kb。
  • geo
  • :此捆绑包允许您在JavaScript中创建不同类型的MAP相关图表。 The compressed and minified version of this bundle has a size of 224.1 kB.
  • gl3dscatter: This bundle allows you to create different types of 3D maps using the scatter<code>scatter3d, scatter3d<code>surface, surface<code>mesh3d, and mesh3d
  • trace modules.该捆绑包的压缩和升级版本的大小为354 kb。
  • scatterscatterglpointcloud gl2d heatmapgl:此捆绑包包含 scatse <code>contourgl stactgl <code>parcoords pointcloud <codef> code> code> heatmapggl <code> heatmapggl <code> code code code 模块。它的尺寸为362.9 kb,缩小和压缩后。
  • scattermapbox scattermapbox:此捆绑包包含 scatse> scatse
  • scate> scattermapbox<li>trace模块。在这种情况下,文件大小为328.6 kb。<strong></strong><code>scatterbarhistogram finance pie:财务捆绑包可用于创建时间序列,烛台和其他图表类型来绘制财务数据。该模块由 scatter<code>ohlc bar <code>candlestick直方图 pie <li>,<code> ohlc <strong>和<code> candlestick 跟踪模块。

strict strict div strict strict

:严格的bundle bundle waster bundle waster ands unders conuctors却造成了一切。该捆绑包比标准捆绑包大10%,因此,除非您真的需要它。您需要做的第一件事是创建一个空图 div 元素,其中应绘制图形。<p>有一些要在图表上绘制的数据。在此示例中,我只是使用一些随机数来创建图表。最后,您必须调用<code>plot()>函数,并为其提供所有信息,例如容器div,数据和布局选项。这是创建一个非常基本的线图的代码:

npm install plotly.js<br>
登录后复制
登录后复制
登录后复制

plotly.js中的所有图表都是使用JSON对象声明创建的。图表的每个属性,例如其颜色和数据,都有一个相应的JSON属性,可用于完全自定义图表的外观和行为。

这些属性可以将其广泛分为两类。第一个被称为 traces ,它们是用于提供有关要在图表上绘制的单个数据的信息的对象。第二类是>布局,它提供了控制图表的所有其他方面(例如标题或注释)的不同属性。图表类型进一步分类了不同的迹线,并且可供您绘制图表的属性取决于> type 属性的值。 在上面的示例中,我们创建了一个存储您想要在图表上绘制的跟踪类型和数据的对象。以下CODEPEN演示显示了上述代码的最终结果。

traceA在演示中可以看到,您可以放大,缩小或自动尺度图表。您也可以将图表下载为图像。图表本身看起来非常专业。

使用Plotly.js创建交互式图表,第1部分:入门

布局属性可以在本系列的其余教程中自定义图表

,我们将专注于学习与线条和条形图(如线图和条形图)相关的不同属性。在此之前,您还应该有一些基本知识,可以对不同的布局属性进行一些基本知识,该属性控制所有图表类型(例如字体,标题,X轴,Y轴等)所共有的方面。

您可以指定一个全局字体,在创建轨迹和其他布局组件(如轴和标题)时应使用该全局字体。这些选项是使用font>对象指定的,默认情况下,图表的所有组件都使用这些值。 color>,sizefamily键位于font键内。您可以使用它们分别设置全局字体颜色,全局字体大小和全局字体家庭。

>

每个图表都有一个title属性,可用于设置当前图表的标题。它为用户提供了有关您在图表上绘制的内容的一些信息。可以使用titlefont>属性指定标题的字体属性。就像globalfont属性一样,可以使用嵌套在color>属性内的sizefamily>键来控制标题的字体相关属性。titlefont

width>您可以使用height>>> and>> and> and> and> and> and> and> and and and and and and and and and and> geys指定图表中图表的宽度和高度。您还可以使用嵌套在margin键下的不同属性来控制图表周围的间距以及绘图区域。所有值均在像素中指定。

>

>使用l>属性,使用r>属性的右边缘指定左边边缘,使用t属性的最高边距和使用b> attribute的最高边距。默认情况下,绘图区域和轴线非常接近。您可以使用嵌套在键内的pad属性周围添加一些空间。填充物以像素指定,其默认值为零。margin

您可以为整个图表的背景以及绘图区域选择自己的颜色,以匹配网站的主题。这两种颜色默认情况下均设置为白色,但是您可以分别使用

paper_bgcolor键为每个颜色指定每个颜色的不同值。plot_bgcolor>

您也可以为图表中所有轴指定标题和不同的字体属性。字体属性嵌套在相应轴的轴键内。您还可以独立地控制轴的基本颜色,以及用于其标题的字体的颜色。

rangemode有时,将点绘制在图表上的点不会一直降低到零。在这种情况下,绘制在轴上创建的壁虱也不会扩展到零。但是,如果您希望滴答始终从零开始,无论绘制的要点范围如何,都可以使用tozero>属性,并将其值设置为

>。

npm install plotly.js<br>
登录后复制
登录后复制
登录后复制
使用Plotly.js创建交互式图表,第1部分:入门>以下代码snippet使用了一些属性,使用了我们刚刚讨论的一些属性,以修改我们在上一节中创建的图表的外观。教程,您了解了plotly.js库的各种功能。我还介绍了库的安装和使用以及不同的布局属性,以根据您的需要自定义图表的外观。

>这篇文章已通过雅各布·杰克逊(Jacob Jackson)的贡献进行了更新。雅各布是网络开发人员,技术作家,自由职业者和开源贡献者。

以上是使用Plotly.js创建交互式图表,第1部分:入门的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

前端热敏纸小票打印遇到乱码问题怎么办? 前端热敏纸小票打印遇到乱码问题怎么办? Apr 04, 2025 pm 02:42 PM

前端热敏纸小票打印的常见问题与解决方案在前端开发中,小票打印是一个常见的需求。然而,很多开发者在实...

神秘的JavaScript:它的作用以及为什么重要 神秘的JavaScript:它的作用以及为什么重要 Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

谁得到更多的Python或JavaScript? 谁得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

JavaScript难以学习吗? JavaScript难以学习吗? Apr 03, 2025 am 12:20 AM

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

如何实现视差滚动和元素动画效果,像资生堂官网那样?
或者:
怎样才能像资生堂官网一样,实现页面滚动伴随的动画效果? 如何实现视差滚动和元素动画效果,像资生堂官网那样? 或者: 怎样才能像资生堂官网一样,实现页面滚动伴随的动画效果? Apr 04, 2025 pm 05:36 PM

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的演变:当前的趋势和未来前景 JavaScript的演变:当前的趋势和未来前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

如何使用JavaScript将具有相同ID的数组元素合并到一个对象中? 如何使用JavaScript将具有相同ID的数组元素合并到一个对象中? Apr 04, 2025 pm 05:09 PM

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

console.log输出结果差异:两次调用为何不同? console.log输出结果差异:两次调用为何不同? Apr 04, 2025 pm 05:12 PM

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...

See all articles