制作酷炫可视化大屏利器--分享10种比较流行的开源免费的图表库

news/2024/11/23 2:51:29/

在开发可视化项目的过程中往往涉及到可视化图表, 多酷炫的报表, 大屏, 都用了非常多的图表,
接下来我和大家分享一些比较流行的开源免费的图表库.

分享10种比较流行的开源免费的图表库

      • 1,Frappe Charts
      • 2,Recharts
      • 3,Protovis
      • 4,dygraphs
      • 5,Nivo
      • 6,Echarts
      • 7,AntV
      • 8,Chart.js
      • 9,ApexCharts
      • 10、D3.js

在这里插入图片描述

1,Frappe Charts

Frappe Charts - 免费开源、轻量无依赖的 web 图表库,简单不臃肿,支持搭配 Vue / React 等框架使用,一个小巧简单的 JavaScript 图表库,通过简单几个参数,可以快速生成类似于 Github 那样美观大气的图表。

官网github地址:https://github.com/frappe/charts
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<!--HTML--><div id="chart"></div>
  // Javascriptlet chart = new frappe.Chart( "#chart", { // or DOM elementdata: {labels: ["12am-3am", "3am-6am", "6am-9am", "9am-12pm","12pm-3pm", "3pm-6pm", "6pm-9pm", "9pm-12am"],datasets: [{name: "Some Data", chartType: 'bar',values: [25, 40, 30, 35, 8, 52, 17, -4]},{name: "Another Set", chartType: 'bar',values: [25, 50, -10, 15, 18, 32, 27, 14]},{name: "Yet Another", chartType: 'line',values: [15, 20, -3, -15, 58, 12, -17, 37]}],yMarkers: [{ label: "Marker", value: 70,options: { labelPos: 'left' }}],yRegions: [{ label: "Region", start: -10, end: 50,options: { labelPos: 'right' }}]},title: "My Awesome Chart",type: 'axis-mixed', // or 'bar', 'line', 'pie', 'percentage', 'donut'height: 300,colors: ['purple', '#ffa3ef', 'light-blue'],tooltipOptions: {formatTooltipX: d => (d + '').toUpperCase(),formatTooltipY: d => d + ' pts',}});chart.export();

在这里插入图片描述
在这里插入图片描述
代码:

  let heatmap = new frappe.Chart("#heatmap", {type: 'heatmap',title: "Monthly Distribution",data: {dataPoints: {'1524064033': 8, /* ... */},// object with timestamp-value pairsstart: startDateend: endDate      // Date objects},countLabel: 'Level',discreteDomains: 0  // default: 1colors: ['#ebedf0', '#c0ddf9', '#73b3f3', '#3886e1', '#17459e'],// Set of five incremental colors,// preferably with a low-saturation color for zero data;// def: ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127']});

2,Recharts

在这里插入图片描述

官网链接 :https://recharts.org/zh-CN/guide

  • 组合
    用解耦的、可重用的 React 组件快速构建你的图表。

  • 可靠
    依赖于轻量级的 D3 子模块构建 SVG 元素。

  • 强大
    调整组件的属性与传递组件自定义你的图表。
    在这里插入图片描述
    代码:

import React, { PureComponent } from 'react';
import { Radar, RadarChart, PolarGrid, Legend, PolarAngleAxis, PolarRadiusAxis, ResponsiveContainer } from 'recharts';const data = [{subject: 'Math',A: 120,B: 110,fullMark: 150,},{subject: 'Chinese',A: 98,B: 130,fullMark: 150,},{subject: 'English',A: 86,B: 130,fullMark: 150,},{subject: 'Geography',A: 99,B: 100,fullMark: 150,},{subject: 'Physics',A: 85,B: 90,fullMark: 150,},{subject: 'History',A: 65,B: 85,fullMark: 150,},
];export default class Example extends PureComponent {static demoUrl = 'https://codesandbox.io/s/radar-chart-specified-domain-mfl04';render() {return (<ResponsiveContainer width="100%" height="100%"><RadarChart cx="50%" cy="50%" outerRadius="80%" data={data}><PolarGrid /><PolarAngleAxis dataKey="subject" /><PolarRadiusAxis angle={30} domain={[0, 150]} /><Radar name="Mike" dataKey="A" stroke="#8884d8" fill="#8884d8" fillOpacity={0.6} /><Radar name="Lily" dataKey="B" stroke="#82ca9d" fill="#82ca9d" fillOpacity={0.6} /><Legend /></RadarChart></ResponsiveContainer>);}
}

在这里插入图片描述

import React, { PureComponent } from 'react';
import { RadialBarChart, RadialBar, Legend, ResponsiveContainer } from 'recharts';const data = [{name: '18-24',uv: 31.47,pv: 2400,fill: '#8884d8',},{name: '25-29',uv: 26.69,pv: 4567,fill: '#83a6ed',},{name: '30-34',uv: 15.69,pv: 1398,fill: '#8dd1e1',},{name: '35-39',uv: 8.22,pv: 9800,fill: '#82ca9d',},{name: '40-49',uv: 8.63,pv: 3908,fill: '#a4de6c',},{name: '50+',uv: 2.63,pv: 4800,fill: '#d0ed57',},{name: 'unknow',uv: 6.67,pv: 4800,fill: '#ffc658',},
];const style = {top: '50%',right: 0,transform: 'translate(0, -50%)',lineHeight: '24px',
};export default class Example extends PureComponent {static demoUrl = 'https://codesandbox.io/s/simple-radial-bar-chart-qf8fz';render() {return (<ResponsiveContainer width="100%" height="100%"><RadialBarChart cx="50%" cy="50%" innerRadius="10%" outerRadius="80%" barSize={10} data={data}><RadialBarminAngle={15}label={{ position: 'insideStart', fill: '#fff' }}backgroundclockWisedataKey="uv"/><Legend iconSize={10} layout="vertical" verticalAlign="middle" wrapperStyle={style} /></RadialBarChart></ResponsiveContainer>);}
}

在这里插入图片描述

import React, { PureComponent } from 'react';
import {ComposedChart,Line,Area,Bar,XAxis,YAxis,CartesianGrid,Tooltip,Legend,Scatter,ResponsiveContainer,
} from 'recharts';const data = [{name: 'Page A',uv: 590,pv: 800,amt: 1400,cnt: 490,},{name: 'Page B',uv: 868,pv: 967,amt: 1506,cnt: 590,},{name: 'Page C',uv: 1397,pv: 1098,amt: 989,cnt: 350,},{name: 'Page D',uv: 1480,pv: 1200,amt: 1228,cnt: 480,},{name: 'Page E',uv: 1520,pv: 1108,amt: 1100,cnt: 460,},{name: 'Page F',uv: 1400,pv: 680,amt: 1700,cnt: 380,},
];export default class Example extends PureComponent {static demoUrl = 'https://codesandbox.io/s/simple-composed-chart-h9zif';render() {return (<ResponsiveContainer width="100%" height="100%"><ComposedChartwidth={500}height={400}data={data}margin={{top: 20,right: 20,bottom: 20,left: 20,}}><CartesianGrid stroke="#f5f5f5" /><XAxis dataKey="name" scale="band" /><YAxis /><Tooltip /><Legend /><Area type="monotone" dataKey="amt" fill="#8884d8" stroke="#8884d8" /><Bar dataKey="pv" barSize={20} fill="#413ea0" /><Line type="monotone" dataKey="uv" stroke="#ff7300" /><Scatter dataKey="cnt" fill="red" /></ComposedChart></ResponsiveContainer>);}
}

3,Protovis

Protovis 是一个可视化 javaScript 图表生成工具。

官网链接:https://mbostock.github.io/protovis/ex/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4,dygraphs

Dygraphs 是一个开源的 JS 库;用于生成可与用户交互的、可缩放的时间图表。主要用于显示密集的数据集合,用户能够很好的浏览和查看数据。

官网链接: https://dygraphs.com/gallery/#g/linear-regression

接下来分享几个图表案例:
在这里插入图片描述

在这里插入图片描述
代码:

new Dygraph(document.getElementById("baseballdiv"),"suzuki-mariners.txt",{fractions: true,errorBars: true,showRoller: true,rollPeriod: 15}
);

在这里插入图片描述

5,Nivo

官网链接 :https://nivo.rocks/swarmplot/

Nivo 是一个基于 D3 和 React 的精美的可视化图表框架,提供十四种不同类型的组件来呈现图表数据。

Nivo 提供了许多自定义选项和三个渲染选项:Canvas,SVG,甚至基于 API 的HTML。它的文档非常出色,Demo 可配置且非常有意思。这是一个高级库,使用非常便捷。 接下来分享几个图表案例:

在这里插入图片描述
代码:

/ install (please try to align the version of installed @nivo packages)
// yarn add @nivo/sunburst
import { ResponsiveSunburst } from '@nivo/sunburst'// make sure parent container have a defined height when using
// responsive component, otherwise height will be 0 and
// no chart will be rendered.
// website examples showcase many properties,
// you'll often use just a few of them.
const MyResponsiveSunburst = ({ data /* see data tab */ }) => (<ResponsiveSunburstdata={data}margin={{ top: 10, right: 10, bottom: 10, left: 10 }}id="name"value="loc"cornerRadius={2}borderColor={{ theme: 'background' }}colors={{ scheme: 'nivo' }}childColor={{from: 'color',modifiers: [['brighter',0.1]]}}enableArcLabels={true}arcLabelsSkipAngle={10}arcLabelsTextColor={{from: 'color',modifiers: [['darker',1.4]]}}/>
)

在这里插入图片描述

// install (please try to align the version of installed @nivo packages)
// yarn add @nivo/swarmplot
import { ResponsiveSwarmPlot } from '@nivo/swarmplot'// make sure parent container have a defined height when using
// responsive component, otherwise height will be 0 and
// no chart will be rendered.
// website examples showcase many properties,
// you'll often use just a few of them.
const MyResponsiveSwarmPlot = ({ data /* see data tab */ }) => (<ResponsiveSwarmPlotdata={data}groups={[ 'group A', 'group B', 'group C' ]}identity="id"value="price"valueFormat="$.2f"valueScale={{ type: 'linear', min: 0, max: 500, reverse: false }}size={{key: 'volume',values: [4,20],sizes: [6,20]}}forceStrength={4}simulationIterations={100}borderColor={{from: 'color',modifiers: [['darker',0.6],['opacity',0.5]]}}margin={{ top: 80, right: 100, bottom: 80, left: 100 }}axisTop={{orient: 'top',tickSize: 10,tickPadding: 5,tickRotation: 0,legend: 'group if vertical, price if horizontal',legendPosition: 'middle',legendOffset: -46}}axisRight={{orient: 'right',tickSize: 10,tickPadding: 5,tickRotation: 0,legend: 'price if vertical, group if horizontal',legendPosition: 'middle',legendOffset: 76}}axisBottom={{orient: 'bottom',tickSize: 10,tickPadding: 5,tickRotation: 0,legend: 'group if vertical, price if horizontal',legendPosition: 'middle',legendOffset: 46}}axisLeft={{orient: 'left',tickSize: 10,tickPadding: 5,tickRotation: 0,legend: 'price if vertical, group if horizontal',legendPosition: 'middle',legendOffset: -76}}/>
)

6,Echarts

在这里插入图片描述
官网链接:https://echarts.apache.org/zh/index.html

在这里插入图片描述

7,AntV

官网链接:https://antv.vision/

数据可视化 AntV 的设计原则是基于 Ant Design 设计体系衍生的,具有数据可视化特性的指导原则。它在遵循 Ant Design
设计价值观的同时,对数据可视化领域的进一步解读,如色板、字体的指引。

AntV 经过大量的项目实战经验,总结了四条核心原则:准确、清晰、有效、美,这四条原则按重要等级先后排序,相辅相成且呈递进关系。
在这里插入图片描述
它提供了丰富的地理数据统计案例:
在这里插入图片描述

8,Chart.js

官网链接:https://chart.nodejs.cn/

https://www.chartjs.org/docs/latest/samples/bar/stacked-groups.html

Chart.js 是一个非常受欢迎的开源库,在 GitHub 上超过 6 万+ star。灵活 且轻量,允许我们使用 HTML5 Canvas 元素构建响应式图表。可以轻松地对折线图和条形图进行混合和匹配以组合不同的数据集,实现非常有意思的功能, 支持 vue 和react。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

9,ApexCharts

官网地址:https://apexcharts.com/vue-chart-demos/

ApexCharts 是一个简洁的 SVG 图表库,附带 Vue 和 React
包装器。它在不同设备上的效果非常丝滑,并提供了详细的文档。ApexCharts 是一个麻省理工学院许可的开源项目,可用于商业和非商业项目。

接下来分享一下它提供的一些图表展示:
在这里插入图片描述

10、D3.js

官网链接 :https://github.com/xswei/d3js_doc
https://observablehq.com/@d3/gallery

D3 (或者叫 D3.js )是一个基于 web 标准的 JavaScript 可视化库。 D3 可以借助 SVG, Canvas 以及HTML 将你的数据生动的展现出来。 D3 结合了强大的可视化交互技术以及数据驱动 DOM 的技术,让你可以借助于现代浏览器的强大功能自由的对数据进行可视化。
在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/211003.html

相关文章

MySQL 事务处理语言 TCL

文章目录 事务处理语言 TCL事务简介事务控制并发事务的隔离挑战脏读不可重复读幻读 事务的隔离级别未提交读&#xff08;READ-UNCOMMITED&#xff09;提交读&#xff08;READ COMMITED&#xff09;可重复读&#xff08;REPEATABLE READ&#xff09;可串行化&#xff08;SERIALI…

命名管道详解

一、命名管道 1、命名管道与匿名管道一个很显著的区别是&#xff1a;匿名管道只能在有血缘关系的进程间进行通信&#xff0c;但命名管道可以让两个毫无关系的进程进行通信。 2、如果我们想在不相关的进程间交换数据&#xff0c;我们可以用到FIFO文件来进行通信&#xff0c;这…

Redis高级数据结构之GEO

GEO的介绍 Redis3.2版本提供了GEO地址位置信息定位的功能。支持存储地理位置信息来实现诸如摇一摇&#xff0c;附近位置这类地理位置信息的功能。 Redis也是使用业界比较通用的地理位置距离排序算法GeoHash算法。将二维的经纬度坐标数据映射到一维的整数&#xff0c;将所有元素…

数据挖掘 基础知识 收集

A Tutorial on Clustering Algorithms-聚类小知识 俗话说&#xff1a;“物以类聚&#xff0c;人以群分”&#xff0c;在自然科学和社会科学中&#xff0c;存在着大量的分类问题。所谓类&#xff0c;通俗地说&#xff0c;就是指相似元素的集合。聚类分析又称群分析&#xff0c;…

朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现

朴素贝叶斯&#xff08;西瓜数据集分类&#xff0c;社区恶意留言分类&#xff0c;垃圾邮件分类&#xff0c;新浪新闻分类&#xff09;&#xff0c;AODE分类器 代码实现 以下代码为本人学习后&#xff0c;修改或补充后的代码实现&#xff0c;数据集和原代码请参考&#xff1a;h…

宏定义编程软件_什么是计算机编程? 定义软件开发。

宏定义编程软件 My five year old son, Ramy, approached me one day while I was working from home and asked, “What are you doing Mama?” 我五岁的儿子拉米有一天在我在家工作时走近我&#xff0c;问道&#xff1a;“你在做什么妈妈&#xff1f;” “I’m working,”…

二代芯片获认可又拿到上亿元融资的深聪智能,正在逐步构筑自己的竞争壁垒...

数据智能产业创新服务媒体 ——聚焦数智 改变商业 日前&#xff0c;思必驰旗下的芯片设计企业上海深聪半导体有限责任公司&#xff08;以下简称“深聪智能”&#xff09;获得上亿元人民币的A轮融资&#xff0c;投资方包括雅迪科技集团、珠海大横琴集团、元禾控股、苏州工业园区…

多线程事务回滚方法

多线程事务回滚方法 介绍案例演示线程池配置异常类实体类控制层业务层mapper工具类验证 解决方案使用sqlSession控制手动提交事务SqlSessionTemplate注入容器中改造业务层验证成功操作示例业务层改造 介绍 1.最近有一个大数据量插入的操作入库的业务场景&#xff0c;需要先做一…