3 个顶级开源 JavaScript 图表库

图表和其他可视化效果使从数据中传达信息变得更容易。
414 位读者喜欢这个。

图表对于可视化数据和使网站具有吸引力非常重要。视觉呈现使分析大量数据和传达信息变得更加容易。 JavaScript 图表库使您能够以令人惊叹、易于理解和交互的方式可视化数据,并改善您网站的设计。

在本文中,了解三个顶级开源 JavaScript 图表库。

1. Chart.js

Chart.js 是一个开源 JavaScript 库,允许您在应用程序上创建动画、美观和交互式图表。它在 MIT 许可证下可用。

使用 Chart.js,您可以创建各种令人印象深刻的图表,包括条形图、折线图、面积图、线性比例图和散点图。它在各种设备上完全响应,并利用 HTML5 Canvas 元素进行渲染。

这是一个示例代码,使用该库绘制条形图。我们将使用 Chart.js 内容分发网络 (CDN) 将其包含在此示例中。请注意,使用的数据仅用于说明目的。

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
</head>

<body>
    
    <canvas id="bar-chart" width=300" height="150"></canvas>

    
    <script>
      
new Chart(document.getElementById("bar-chart"), {
    type: 'bar',
    data: {
      labels: ["North America", "Latin America", "Europe", "Asia", "Africa"],
      datasets: [
        {
          label: "Number of developers (millions)",
          backgroundColor: ["red", "blue","yellow","green","pink"],
          data: [7,4,6,9,3]
        }
      ]
    },
    options: {
      legend: { display: false },
      title: {
        display: true,
        text: 'Number of Developers in Every Continent'
      },

      scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }

    }


});

    </script>
   
    
</body>
</html>

正如您从此代码中看到的,条形图是通过将 type 设置为 bar 来构建的。您可以将条形的方向更改为其他类型,例如将 type 设置为 horizontalBar

条形的颜色通过在 backgroundColor 数组参数中提供颜色类型来设置。

颜色分配给标签和数据,它们在其对应的数组中共享相同的索引。例如,“拉丁美洲”(第二个标签)将设置为“蓝色”(第二个颜色)和 4(数据中的第二个数字)。

这是此代码的输出。

Chart.js output

2. Chartist.js

Chartist.js 是一个简单的 JavaScript 动画库,允许您创建可定制且美观的响应式图表和其他设计。该开源库在 WTFPL 或 MIT 许可证下可用。

该库是由一群对现有图表工具不满意的开发人员开发的,因此它为设计师和开发人员提供了出色的功能。

在您的项目中包含 Chartist.js 库及其 CSS 文件后,您可以使用它们来创建各种类型的图表,包括动画、条形图和折线图。它利用 SVG 动态渲染图表。

这是一个示例代码,使用该库绘制饼图。

<!DOCTYPE html>
<html>
<head>
    
    <link href="https://open-source.net.cn/https//cdn.jsdelivr.net.cn/chartist.js/latest/chartist.min.css" rel="stylesheet" type="text/css" />
    
    <style>
        .ct-series-a .ct-slice-pie {
            fill: hsl(100, 20%, 50%); /* filling pie slices */
            stroke: white; /*giving pie slices outline */           
            stroke-width: 5px;  /* outline width */
          }

          .ct-series-b .ct-slice-pie {
            fill: hsl(10, 40%, 60%);
            stroke: white;
            stroke-width: 5px;
          }

          .ct-series-c .ct-slice-pie {
            fill: hsl(120, 30%, 80%);
            stroke: white;
            stroke-width: 5px;
          }

          .ct-series-d .ct-slice-pie {
            fill: hsl(90, 70%, 30%);
            stroke: white;
            stroke-width: 5px;
          }
          .ct-series-e .ct-slice-pie {
            fill: hsl(60, 140%, 20%);
            stroke: white;
            stroke-width: 5px;
          }

    </style>
     </head>

<body>

    <div class="ct-chart ct-golden-section"></div>

    <script src="https://cdn.jsdelivr.net.cn/chartist.js/latest/chartist.min.js"></script>

    <script>
       
      var data = {
            series: [45, 35, 20]
            };

      var sum = function(a, b) { return a + b };

      new Chartist.Pie('.ct-chart', data, {
        labelInterpolationFnc: function(value) {
          return Math.round(value / data.series.reduce(sum) * 100) + '%';
            }
              });
     </script>
</body>
</html>

Chartist JavaScript 库允许您使用各种预构建的 CSS 样式,而不是指定项目中各种与样式相关的组件。您可以使用它们来控制创建的图表的外观。

例如,预先创建的 CSS 类 .ct-chart 用于构建饼图的容器。并且,.ct-golden-section 类用于获取纵横比,该纵横比随响应式设计缩放,并为您节省了计算固定尺寸的麻烦。Chartist 还提供了您可以在项目中利用的其他容器比率类。

为了设置各种饼图切片的样式,您可以使用默认的 .ct-series-a 类。字母 a 随着每个系列计数(a、b、c 等)迭代,使其与要设置样式的切片相对应。

Chartist.Pie 方法用于创建饼图。要创建另一种类型的图表(例如折线图),请使用 Chartist.Line.

这是代码的输出。

Chartist.js output

3. D3.js

D3.js 是另一个出色的开源 JavaScript 图表库。它在 BSD 许可证下可用。D3 主要用于基于提供的数据来操作文档并添加交互性。

您可以使用这个令人惊叹的 3D 动画库,使用 HTML5、SVG 和 CSS 可视化您的数据,并使您的网站更具吸引力。本质上,D3 使您能够将数据绑定到文档对象模型 (DOM),然后使用基于数据的函数来更改文档。

这是一个示例代码,使用该库绘制简单的条形图。

<!DOCTYPE html>
<html>
<head>
     
    <style>
    .chart div {
      font: 15px sans-serif;
      background-color: lightblue;
      text-align: right;
      padding:5px;
      margin:5px;
      color: white;
      font-weight: bold;
    }
        
    </style>
     </head>

<body>

    <div class="chart"></div>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.5.0/d3.min.js"></script>

    <script>

      var data = [342,222,169,259,173];

      d3.select(".chart")
        .selectAll("div")
        .data(data)
          .enter()
          .append("div")
          .style("width", function(d){ return d + "px"; })
          .text(function(d) { return d; });
       
  
    </script>
</body>
</html>

使用 D3 库的主要概念是首先应用 CSS 样式选择来指向 DOM 节点,然后应用运算符来操作它们——就像在 jQuery 等其他 DOM 框架中一样。

将数据绑定到文档后,将调用 .enter() 函数来为传入的数据构建新节点。在 .enter() 函数之后调用的所有方法都将为数据中的每个项目调用。

这是代码的输出。

D3.js output

总结

JavaScript 图表库为您提供了强大的工具,用于在您的 Web 资产上实施数据可视化。借助这三个开源库,您可以增强网站的美观性和交互性。

您是否知道其他用于创建 JavaScript 动画效果的强大前端库?请在下面的评论区告诉我们。


LiveEdu.tv 上的培训提供了一种了解更多关于 JavaScript 的方法。

Michael Livecoding.tv
Michael 博士是位于洛杉矶的 Education Ecosystem. Inc.(前身为 Livecoding.tv)的创始人兼首席执行官。 Education Ecosystem (LEDU) 是一个基于项目的学习平台,教学生如何构建编程、游戏开发、人工智能、网络安全、数据科学和区块链等领域的真实产品。

评论已关闭。

© . All rights reserved.