文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

2024 年面向前端开发的七个最佳图表库

2024-11-29 21:59

关注

本文将介绍七个超级好用的图表库。一起来看看吧!

1. Latitude for React:将图表集成到前端应用的完美伴侣

图片

Latitude 是一款用于嵌入式分析的开源框架,能够快速将 SQL 查询公开为 API 端点。

产品包括@latitude-data/react,这是一组原生 React 组件,可用于轻松绘制来自 Latitude API 的数据。如果你选择自带数据,Latitude也可以用作独立的图表库。

Latitude for React 的主要特性

如何使用 Latitude for React

首先,在 React 项目中安装 Latitude 的react包:

npm install --save @latitude-data/react

接着,导入用于Latitude组件的核心样式:

import '@latitude-data/react/dist/index.css';

Latitude 后端的使用

如果要从 Latitude 后端获取数据,可以使用项目根目录的LatitudeProvider包装应用程序:

import { LatitudeProvider } from '@latitude-data/react';

function App() {
  return (
    
      }}>
      {}
    );
}

再以Query为前缀使用 Latitude 的图表组件:

import { QueryLineChart } from '@latitude-data/react';

function MyComponent() {
  return (
    
  );
}

在上面的示例中,queryPath对应于 Latitude 后端中定义的查询路径。

作为独立的图表库

可以像这样使用独立组件:

import { LineChart } from '@latitude-data/react';
function MyComponent() {
  const data = [
    {
      release_year: 2010,
      count_shows: 10,
      count_movies: 2
    }
  ]
  return (
    
   );
}

觉得意犹未尽,还可以阅读文档获取有关 Latitude 动态显示数据的加强版指南。

2. D3.js:用于数据可视化的 JavaScript 库

图片

D3 虽然是低级图表库,但它提供了无与伦比的自定义和灵活性。

相比那些学习难度大的通用前端框架,如 React 和 Svelte,如果是一些特定的图表需求,那么d3.js可能是更佳的选择。当然,如果应用程序需要快速集成简单图表,那么更推荐使用其他的图表库。

D3.js的主要特点

如何使用D3.js

在项目中安装 d3 的npm包:

npm install d3

以下示例代码表示通过id #chart将图表添加到html组件:

import * as d3 from 'd3';

// Data for the bar chart
const data = [
    { name: 'A', value: 30 },
    { name: 'B', value: 80 },
    { name: 'C', value: 45 },
    { name: 'D', value: 60 },
    { name: 'E', value: 20 },
    { name: 'F', value: 90 },
    { name: 'G', value: 55 }
];

// Set the dimensions and margins of the graph
const margin = { top: 20, right: 30, bottom: 40, left: 40 };
const width = 500 - margin.left - margin.right;
const height = 300 - margin.top - margin.bottom;

// Append the svg object to the body of the page
const svg = d3.select("#chart")
    .append("svg")
    .attr("width", width + margin.left + margin.right)
    .attr("height", height + margin.top + margin.bottom)
    .append("g")
    .attr("transform", `translate(${margin.left},${margin.top})`);

// X axis
const x = d3.scaleBand()
    .range([0, width])
    .domain(data.map(d => d.name))
    .padding(0.1);
svg.append("g")
    .attr("transform", `translate(0,${height})`)
    .call(d3.axisBottom(x))
    .selectAll("text")
    .attr("class", "axis-label")
    .attr("transform", "translate(-10,0)rotate(-45)")
    .style("text-anchor", "end");

// Y axis
const y = d3.scaleLinear()
    .domain([0, d3.max(data, d => d.value)])
    .nice()
    .range([height, 0]);
svg.append("g")
    .call(d3.axisLeft(y))
    .selectAll("text")
    .attr("class", "axis-label");

// Bars
svg.selectAll(".bar")
    .data(data)
    .enter()
    .append("rect")
    .attr("class", "bar")
    .attr("x", d => x(d.name))
    .attr("y", d => y(d.value))
    .attr("width", x.bandwidth())
    .attr("height", d => height - y(d.value));

如你所见,D3.js 通常比其他替代方法更冗长,但也因此可以最大限度地控制可视化的各个方面。

D3 的免费和开源也是一大亮点。

3. Chart.js:灵活的 JavaScript 库,适用于基于 HTML 的图表

图片

Chart.js目前是最受欢迎的图表库之一,也是最容易使用的图表库之一。与一些仅将数据呈现为 SVG 的图表库不同,Chart.js通过 Canvas 进行视觉渲染。

Chart.js的主要特点

如何使用Chart.js

Chartjs 可以通过npm安装,也可以在运行时通过cdn直接下载:

这个项目是不是很酷呢!

4. Apache ECharts:用于快速构建图表的 JavaScript 可视化工具

图片

ECharts 是一个开源的数据可视化库,这段时间越来越受到大家的喜爱和欢迎。它由 Apache foundation 构建,依靠 ZRender 来渲染图形。

与其他库相比,ECharts更复杂;并且ECharts只渲染动态数据。

ECharts的主要特点

如何使用 Apache ECharts

使用npm安装 echarts:

npm install echarts

以下代码片段通过 id #chart在 DOM 元素中创建了一个简单的条形图:

// Import ECharts
import * as echarts from 'echarts';

// Initialize the chart
var chartDom = document.getElementById('chart');
var myChart = echarts.init(chartDom);
var option;

// Specify the chart configuration
option = {
    title: {
        text: 'Simple Bar Chart'
    },
    tooltip: {},
    xAxis: {
        data: ['A', 'B', 'C', 'D', 'E', 'F']
    },
    yAxis: {},
    series: [
        {
            name: 'Value',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
        }
    ]
};

// Use the specified chart configuration
option && myChart.setOption(option);

很有趣的一个项目,不是吗?

5. Nivo:用于在 React 构建图表app的库

图片

Nivo 是一个专为 React 而设计、用于创建数据可视化的高级开源 JavaScript 库。它建立在 D3 的基础上,提供广泛的图表类型,自带内置主题、交互性和响应式设计。

Nivo的主要特点

如何使用 Nivo

React 开发人员使用 Nivo 简直轻而易举。安装 nivo 核心软件包以及相关图表库。在下面的示例中,我们将实现一个条形图:

yarn add @nivo/core @nivo/bar

然后,导入相关的图表组件并在 React 环境中使用:

import { Bar } from '@nivo/bar';

const MyBarChart = () => {

const salesData = [
  {
    "category": "Electronics",
    "value": 5000
  },
  {
    "category": "Clothing",
    "value": 3000
  },
  {
    "category": "Furniture",
    "value": 2500
  }
];

  return (
    
  );
};

export default App;

重复强调一句,Nivo 是开源的,非常棒!

6. Plotly:适用于不同技术堆栈的开源图表库

图片

Plotly 是开源的数据可视化库,支持多种图表类型和交互式功能。可用于包括 Python、R 和 JavaScript在内的多种编程语言。

Plotly.js 是 Plotly 的 JavaScript 版本,建立在 D3 之上,广泛用于创建基于 web 的交互式可视化。

Plotly 的主要特点

如何使用 Plotly

如前所述,Plotly 可以使用多种编程语言,这里仅以 Javascript 为例。

首先,安装相关npm包:

npm install plotly.js-dist

然后,在html中创建一个空的div元素来绘制图形:

最后,输入以下代码来绘制一个简单的折线图:

const TESTER = document.getElementById('tester');

Plotly.newPlot( TESTER, [{
    x: [1, 2, 3, 4, 5],
    y: [1, 2, 4, 8, 16] }], {
    margin: { t: 0 } } 
);

Plotly 真的是一个非常好用的工具,对吧!

7. Victory:用于图表和数据可视化的 React 组件

Victory 是一个用于 React 和 React Native 的开源模块化图表库。它有一个简单优雅的 API,可用于创建各种数据可视化。

与 Nivo 类似,Victory 利用了 React 的优势,因此成为许多熟悉 React 生态系统的开发人员的天然选择。

Victory JS的主要特点

如何使用 Victory

首先,安装npm包:

npm install victory

然后,根据需要导入要使用的相关组件。例如:

import React from 'react';
import { VictoryBar } from 'victory';

const data = [
  {quarter: 1, earnings: 13000},
  {quarter: 2, earnings: 16500},
  {quarter: 3, earnings: 14250},
  {quarter: 4, earnings: 19000}
]

function App() {
  return (
    
}

如果你觉得 Victory 很酷,那么一定要尝试一下。

结束语

恭喜!你又学完了今天的新知识!

在本文中,我们介绍了 2024 年值得探索的 7 个图表库。并且,我们不仅仅是简单地概述了一下哦,还具体介绍了每个库的工作原理、底层架构以及构建技术。此外,我们还通过示例学习了如何将这些库合用于项目中。

来源:前端新世界内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯