前端主流图表框架

article/2025/10/14 11:14:28

文章目录

    • 一 · echarts
        • 1.简介:
        • 2.使用:
            • 1.代码:
            • 2.效果:
            • 3.代码2:
            • 4.效果2(鼠标移动有定位效果):
    • 二 · Emprise JavaScript Charts(英文版不好阅读,访问慢,不建议使用)
        • 简单记一下:1.代码+效果图
    • 三 · Flot
        • Flot官网
        • github: [https://github.com/flot/flot](https://github.com/flot/flot)
        • 学习网址:[http://www.jqueryflottutorial.com/jquery-flot-chart-types.html](http://www.jqueryflottutorial.com/jquery-flot-chart-types.html)
    • 四 · rickshaw
    • 五 · sparkline
    • 六 · easypiechart
    • 七 · Chart.js
        • 1.官网:[http://chartjs.org/](http://chartjs.org/)
        • 2.文档: [http://www.chartjs.org/docs/](http://www.chartjs.org/docs/)
    • 八 · Knob Charts
    • 九 · morris.js
    • 十 · Recharts
        • 官网:[http://recharts.org/#/en-US/](http://recharts.org/#/en-US/)
    • 十一 ·TauCharts
    • 十二 · C3.js
        • 官网:[https://c3js.org/](https://c3js.org/)
    • 十三 · NVD3
        • 官网:[http://nvd3.org/](http://nvd3.org/)
    • 十四 · FlexChart
        • 官网:[https://demo.grapecity.com.cn/wijmo5/learningwijmo/#96YKp](https://demo.grapecity.com.cn/wijmo5/learningwijmo/#96YKp)
        • 旭日图Demo:[https://demo.grapecity.com.cn/wijmo5/Angular/Explorer/Explorer/#/chart/sunburst](https://demo.grapecity.com.cn/wijmo5/Angular/Explorer/Explorer/#/chart/sunburst)
    • 十五 · Chartist
        • 官网:[https://gionkunz.github.io/chartist-js/](https://gionkunz.github.io/chartist-js/)

一 · echarts

1.简介:

纯JavaScript图表库,底层依赖于轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表,基于BSD开原协议,是一款非常优秀的可视化前端框架

由于 Echarts 是用普通的 JavaScript 编写的,所以 Echarts 不存在其它图表库存在的无法无缝迁移的问题。

同时,Echarts 也提供了很多官方文档供用户查看。

官方API文档和教程

GitHub源文件网址(源码)

使用 npm 可以很容易的完成 Echarts 的安装:

npm install echarts --save

2.使用:

1.代码:
<!DOCTYPE html>
<html ><head><meta charset="utf-8" /><title></title><!-- 本地引用 --><!-- <script src="js/echarts.js"></script> --><!-- cdn引用 --><script src="https://echarts.apache.org/examples/vendors/echarts/echarts.min.js" type="text/javascript" charset="utf-8"></script></head><body><div id="container" style="height: 500%;"></div><script type="text/javascript">var dom =document.getElementById("container");var myChart=echarts.init(dom);var app={};option = null;option = {//标题title:{text:'折线图',subtext:'模拟数据',x:'center'},//横坐标xAxis:{name:'星期',type:'category',data:['Mon','Tue','Wed','Thu','Fri','Sat','Sun']},//纵坐标yAxis:{name:'数值',type:'value'},//数据信息series:[{data:[820,932,901,934,1290,1330,1320],type:'line'}]};//载入数据myChart.setOption(option,true);</script></body>
</html>
2.效果:

在这里插入图片描述

3.代码2:
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><!-- cdn引用 --><script src="https://echarts.apache.org/examples/vendors/echarts/echarts.min.js" type="text/javascript" charset="utf-8"></script></head><body><div id="container" style="height: 500%;"></div><script type="text/javascript">var dom = document.getElementById("container");var myChart = echarts.init(dom);var app = {};option = null;option = {title: {text: 'Large-scale scatterplot'},tooltip : {trigger: 'axis',showDelay : 0,axisPointer:{show: true,type : 'cross',lineStyle: {type : 'dashed',width : 1}},zlevel: 1},legend: {data:['sin','cos']},toolbox: {show : true,feature : {mark : {show: true},dataZoom : {show: true},dataView : {show: true, readOnly: false},restore : {show: true},saveAsImage : {show: true}}},xAxis : [{type : 'value',scale:true}],yAxis : [{type : 'value',scale:true}],series : [{name:'sin',type:'scatter',large: true,symbolSize: 3,data: (function () {var d = [];var len = 10000;var x = 0;while (len--) {x = (Math.random() * 10).toFixed(3) - 0;d.push([x,//Math.random() * 10(Math.sin(x) - x * (len % 2 ? 0.1 : -0.1) * Math.random()).toFixed(3) - 0]);}//console.log(d)return d;})()},{name:'cos',type:'scatter',large: true,symbolSize: 2,data: (function () {var d = [];var len = 20000;var x = 0;while (len--) {x = (Math.random() * 10).toFixed(3) - 0;d.push([x,//Math.random() * 10(Math.cos(x) - x * (len % 2 ? 0.1 : -0.1) * Math.random()).toFixed(3) - 0]);}//console.log(d)return d;})()}]};;if (option && typeof option === "object") {myChart.setOption(option, true);}</script></body>
</html>
4.效果2(鼠标移动有定位效果):

在这里插入图片描述

二 · Emprise JavaScript Charts(英文版不好阅读,访问慢,不建议使用)

Emprise 是一个100% 纯 JavaScript 图表解决方案,并不需要任何 JavaScript 框架. Emprise JavaScript Charts 支持鼠标追踪鼠标事件按键追踪与事件缩放,滚动,交互等功能,将用户体验上升到一个新高度。支持曲线图,面积图,离散图,圆饼图,柱状图等形式,拥有完备文档的属性和方法可以帮助实现很好的定制

简单记一下:1.代码+效果图

<head>
<title>demo</title>
<link rel="stylesheet" href="./EJSChart.css" type="text/css" media="screen" />
<script type="text/javascript" src="./EJSChart.min.js"></script>
<script type="text/javascript" src="./jquery-1.12.4.min.js"></script>
</head>
<div id="pes"  style="width:99%;height:540px" ></div>
<script type="text/javascript" id="script_pes">var chart = new EJSC.Chart("pes");chart.addSeries(new EJSC.LineSeries(
new EJSC.ArrayDataHandler([
[0,.7],[1,4],[2,5],[5,6],[5.2,2.33],[6,8],
[9,5],[9.2,4],[10,7.2]
])
));</script>

在这里插入图片描述

三 · Flot

Flot官网

在这里插入图片描述
Flot 为jQuery 提供的javascript代码库. 容易使用,有特色的图表,提供交互功能(能够放大缩小数据区域等)。是一个纯粹的 jQuery JavaScript 绘图库,可以在客户端即时生成图形,使用非常简单,支持放大缩小以及鼠标追踪等交互功能。该插件支持 IE6/7/8, Firefox 2.x+, Safari 3.0+, Opera 9.5+ 以及 Konqueror 4.x+。使用的是 Safari 最先引入的 Canvas 对象,目前所有主流浏览器都支持该对象,除了 IE, 因此在 IE中使用 JavaScript 进行模拟

github: https://github.com/flot/flot

在这里插入图片描述

学习网址:http://www.jqueryflottutorial.com/jquery-flot-chart-types.html

在这里插入图片描述

  • jQuery 已经成为 Web 开发人员非常重要的工具。有了 Flot.js,前端设计也变得更加容易

  • Flot.js 是 JavaScript 库中较为古老的图表库之一。尽管如此,Flot.js 也不会因为绘制折线图、饼图、条形图、面积图、甚至堆叠图表而降低其性能

  • Flot.js 有一个很完善的文档。当用户遇到困难时,可以很容易地找到解决办法。Flot.js 也支持旧版本的浏览器

四 · rickshaw

GitHub地址:https://github.com/shutterstock/rickshaw

http://code.shutterstock.com/rickshaw/ 这个地址不翻墙,打不开

说明: Rickshaw 是一个用于绘制时序图的简单 jS 库,基于 Mike Bostock’s delightful D3 库构建

GitHub Demo: https://github.com/shutterstock/rickshaw/tree/master/examples
在这里插入图片描述

五 · sparkline

官网:

http://omnipotent.net/jquery.sparkline/

说明: sparkline是一类信息体积小和数据密度高的图表。目前它被用作一些测量,相关的变化的信息呈现的方式,如平均温度,股市交投活跃。sparkline常常以一组多条的形式出现在柱状图,折线图当中

http://www.highcharts.com/

六 · easypiechart

easypiechart

官网: https://github.com/rendro/easy-pie-chart/

说明:EASY PIE CHART是一个轻量级的jQuery插件,主要用来渲染和制作漂亮的饼图及动画效果,基于与HTML5的canvas元素。

Demo: https://github.com/rendro/easy-pie-chart/tree/master/demo

七 · Chart.js

1.官网:http://chartjs.org/

2.文档: http://www.chartjs.org/docs/

在这里插入图片描述

说明: Chart.js是一个基于HTML5 canvas技术的开源图表绘制工具库。Chart.js简化了在网站上绘制动态图表的工作。
Chart.js 是一种简洁、用户友好的图表库,同时也是基于 HTML5 的 JavaScript 库,用于创建动画、交互式和可自定义的图表和图形。

借助 Chart.js,用户可以轻松直观地查看混合图表类型。默认情况下,也可以使用 Chart.js 创建响应式网页。

Chart.js 库允许用户快速创建可视化数据。Chart.js 易于设置,对初学者十分友好。使用 Chart.js 则不必考虑浏览器的兼容性问题,因为 Chart.js 支持旧浏览器。

使用 npm 安装 Chart.js:

npm install chart.js --save

八 · Knob Charts

官网: http://anthonyterrien.com/knob/

说明: 一款生成超酷的旋钮特效的工具库

Demo: http://anthonyterrien.com/demo/knob/

九 · morris.js

官网: http://morrisjs.github.io/morris.js/

说明: Morris.js 是一个轻量级的JS库,用来生成各种时序图和区域图

源码: https://github.com/morrisjs/morris.js/

Demo: https://github.com/morrisjs/morris.js/tree/master/examples

十 · Recharts

官网:http://recharts.org/#/en-US/

在这里插入图片描述

ReCharts 是一个使用 React 构建的,基于 D3 的图表库。

使用 ReCharts,用户可以在 React Web 应用程序中无缝地编写图表。

Recharts 非常轻巧,并使用 SVG 元素来创建很奇特的图表。

使用 npm 安装 Recharts:

npm install recharts

Recharts 没有冗长的文档,它很直接。当你遇到困难时,使用 Recharts 可以很容易找到解决方案。

十一 ·TauCharts

在这里插入图片描述
https://www.taucharts.com/
TauCharts 是最灵活的 JavaScript 图表库之一。它是基于 D3 创建的,是一个以数据为中心的 JavaScript 图表库,可以改进数据可视化的效果。

TauCharts 十分灵活,访问其 API 也十分轻松。TauCharts 为用户提供了无缝映射和可视化的数据,使用 TauCharts 能够设计出十分美观的数据界面。同时,TauCharts 也和易于学习。

通过 npm 安装 TauCharts:

npm install taucharts

十二 · C3.js

官网:https://c3js.org/

在这里插入图片描述

与 TauCharts 相同,C3.js 也是一个非常有效的基于 D3 的图表可视化库。另外,C3.js 允许用户创建可定制的具有个人风格的类。

C3.js 看起来是个比较难的库,但是一旦掌握了 C3.js 技巧,就能得心应手的使用了。

有了 C3.js 图表库,即使在第一次渲染之后,用户也可以通过创建回调来更新图表。C3.js 也允许用户为自己的 Web 应用程序创建可复用的图表,从而减少工作量。

使用 npm 安装 C3.js 图表库:

npm install c3

十三 · NVD3

官网:http://nvd3.org/

在这里插入图片描述
NVD3 是由 Mike Bostock 撰写的基于 D3 的 JavaScript 库。NVD3 允许用户在 Web 应用程序中创建美观的、可复用的图表。

NVD3 具有很强大的图表功能,能够很方便的创建箱形图、旭日形和烛台图等。如果用户想在 JavaScript 图表库中用到大量的能力,推荐试用 NVD3

NVD3 图表库的速度有时可能会成为一个问题,与 Fastdom 安装配合使用,速度会更快。

十四 · FlexChart

官网:https://demo.grapecity.com.cn/wijmo5/learningwijmo/#96YKp

旭日图Demo:https://demo.grapecity.com.cn/wijmo5/Angular/Explorer/Explorer/#/chart/sunburst

在这里插入图片描述

FlexChart 是高性能的图表工具。使用 FlexChart,可轻松的将表格数据可视化为业务图表。FlexChart 不但支持常见的图表类型,如折线图、饼状图、面积图等,还支持气泡图、K线图、条形图、漏斗图等高级图表类型。

FlexChart 的使用也十分简单,FlexChart 图表将所有与数据有关的任务都委托给 CollectionView 类,只需操作 CollectionView 类,就能实现过滤、排序和分组数据等功能。

FlexChart 包含的图表元素也比较全面,如图表图例、图表标题、图表页脚、数轴、图表 series 和标签等,用户也可以为图表添加自定义的元素,如平均线和趋势线等。

FlexChart 本质上是一种交互式的图表,不论是数据进行任何的更改,都会自动反应在图表上,如图表曲线随数据放大缩小、过滤、钻取、动画等。

十五 · Chartist

官网:https://gionkunz.github.io/chartist-js/

在这里插入图片描述

Chartist 库很适合于创建美观、响应能力强、阅读友好的图表。Chartist 使用 SVG 来呈现图表。

Chartist 还提供了使用 CSS 媒体查询和创意动画来自定义图表的能力。用户使用 Chartist 在图表设计中实现自己的所有创意。

Chartist 易于配置,也易于使用 Sass 进行定制。但是,它不支持旧浏览器。

使用 Chartist,可以通过 CSS 的样式来美化你的 SVG,用户完全可以现实自己所想的所有图表样式。

使用 npm 安装 Chartist:

npm install chartist --save


http://chatgpt.dhexx.cn/article/TQoEZFbY.shtml

相关文章

主流前端框架下ArcGIS API for JavaScript的开发

在工作之余利用周末的时间录制了一门ArcGIS API for JavaScript的零基础开发课程&#xff0c;相关信息如下。 课程介绍 课程详细介绍请看如下地址中的视频介绍。 课程特点 课程所用API为目前最新版ArcGIS API for JavaScript 4.14课程所用的主流前端框架为Vue和React 课程…

angular-6大主流前端框架(一)

小编我最近做的项目中前端用到了angular&#xff0c;全因心中无货&#xff0c;特来补货。我们先对比一下前端框架。 【我是否需要使用框架&#xff1f;】 如果不尝试回答这个问题就是我们的失职&#xff0c;这越来越成为社会上某些人的口头禅&#xff0c;在网络平台上的争论也…

3大主流前端框架对比

2019独角兽企业重金招聘Python工程师标准>>> 框架对比 AngularReactVue.js组织方式MVC模块化模块化数据绑定双向单向双向模板能力强大自由简介自由度较小大较大路由静态路由动态路由动态路由 适用场景 Angular&#xff1a;后端开发人员构建CURD类型应用 React&#…

主流前端框架实现原理

主流前端框架都遵循组件化开发模式&#xff0c;根据更新粒度可以分为应用级、组件级和节点级。他们的实现原理均为UIf(state) 即框架内部的运行机制根据状态渲染视图 应用级代表:React 组件级代表&#xff1a;Vue 节点级代表&#xff1a;Svelte、SOLID 一、 节点级更新框架…

三大主流前端框架介绍VUE 、React、Angular

当前&#xff0c;三大主流前端框架分别是Vue、React、Angular这三个框架。 Vue 是一个构建数据驱动的Web界面的库&#xff0c;准确来说不是一个框架&#xff0c;用于构建直观&#xff0c;快速和组件化交互式界面的 MVVM 框架。 它有以下的特性&#xff1a;1.轻量级的框架、2…

web前端三大主流框架浅述

web前端三大主流框架是什么&#xff1f;前端开发师的岗位职责有哪些&#xff1f;微点阅读小编整理了相关内容供大家参考了解&#xff0c;请各位小伙伴随小编一起查阅下面的内容。 web前端三大主流框架 web前端三大主流框架是Angular、React、Vue。 1、Angular Angular原名angul…

几个精致的web UI框架

2019独角兽企业重金招聘Python工程师标准>>> 1.Aliceui Aliceui是支付宝的样式解决方案&#xff0c;是一套精选的基于 spm 生态圈的样式模块集合&#xff0c;是 Arale 的子集&#xff0c;也是一套模块化的样式命名和组织规范&#xff0c;是写 CSS 的更好方式。 gitH…

自动化测试的基本流程

测试如果按照是否手工划分可以分为手工测试和自动化测试。手工测试执行效率慢&#xff0c;容易出错。但是可以进行探索性测试和发散性测试。自动化测试则是和手工测试对立互补。 实施自动化测试的基本步骤 首先&#xff0c;需要已经完成了功能测试&#xff0c;此时测试版本稳…

自动化测试的流程有哪些?没有比这个更详细的了

目录 前言 自动化测试流程 总结 重点&#xff1a;配套学习资料和视频教学 前言 年初的时候自动化测试脚本也接触了一段时间&#xff0c;当时一上来就根据同事的写好的模板&#xff0c;写了几个简单功能模块的脚本&#xff0c;对整个脚本的编写流程有了些了解。 最近又开始做…

自动化测试的流程

下图是自动化测试的基本流程图&#xff0c;以及每个阶段的任务负责人&#xff0c;输出等。 1、制定测试计划 在展开自动化测试之前&#xff0c;最好做个测试计划&#xff0c;明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求&#xff0c;并确保测试所需的…

原来!自动化测试项目--的完整测试流程是这样的……

目录 需求分析&#xff1a; 整体流程图&#xff1a; 分析流程&#xff1a; 测试设计&#xff1a; 测试分析&#xff1a; 测试设计&#xff1a; 用例设计&#xff1a; 用例执行和回归 用例执行标准 bug回归标准 补充用例 质量分析 bug定位 前端定位&#xff1a; …

MySQL自动化运维工具

数据字典DDM&#xff1a;查看DB表结构和字段的&#xff0c;应用开发人员使用的&#xff0c;参考设计时 数据执行&#xff1a;写SQL语句的dml &#xff0c;数据库人员给开发人员使用&#xff0c;执行语句、线上调试&#xff0c;发现数据问题&#xff0c;技术支持&#xff0c; 数…

如何做自动化测试

这个话题比较大&#xff0c;相信大家也都有自己的想法&#xff0c;我在这里写一些我自己的看法&#xff0c;请大家指教。 什么叫做自动化测试工程师 首先&#xff0c;会使用自动化测试工具的测试人员不能够称之为完全的自动化测试人员&#xff0c;这类测试人员被称为『工具小…

【测试】自动化测试基本流程

下图是自动化测试的基本流程图&#xff0c;以及每个阶段的任务负责人&#xff0c;输出等。 1、制定测试计划 在展开自动化测试之前&#xff0c;最好做个测试计划&#xff0c;明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求&#xff0c;并确保测试所需的…

自动化测试如何管理测试数据

前段时间&#xff0c;知识星球里有同学问到&#xff1a;自动化case越多&#xff0c;测试数据越多&#xff0c;数据的管理成本也越来越高&#xff0c;是否需要一个数据池来专门管理测试数据&#xff1f;这是一个好问题&#xff0c;也是很多测试同学在自动化测试实践中必须面对的…

自动化测试如何准备测试数据

事实上&#xff0c;大多数类型的测试都需要准备测试数据。 手动测试&#xff1a;需要准备一些基础数据&#xff0c;比如配置数据等; 自动化测试&#xff1a;基础需要准备&#xff0c;已有数据&#xff0c;动态运行时产生的数据需要准备; 性能测试&#xff1a;类似于自动化测试…

自动化测试实施流程

在上篇文章中&#xff0c;我们已经介绍过Selenium的一些基础知识&#xff0c;以及是否能够开展自动化测试的情形&#xff0c;在这篇文章中&#xff0c;我们将主要介绍自动化测试的实施流程。 1、自动化测试流程图 2、主要过程描述 2.1、自动化测试的切入点 开展自动化测试的…

自动化测试之获取mysql中的数据

各位小伙伴们&#xff0c;大家好&#xff0c;今天给大家带来的是关自动化测试之获取mysql数据库中的数据方面的干货&#xff0c;技术含金量超高&#xff0c;有测开方面发展的小伙伴可以好好看看。 实施自动化获取mysql数据库中的数据的前提知识有&#xff1a; 1. 精通软件测试…

性能自动化测试整体流程

目录 1. 性能环境搭建介绍 1.1 配置Jenkins 1.2 配置Maven, JDK 1.3 安装Jenkins插件 1.4 Jenkins角色权限管理 1.5 Jenkins配置发送邮件 1.6 配置JMeter 1.7 安装和配置Tomcat 2. 分布式接口压测的Job设置 2.1 Jenkins上配置Job 2.2 配置JMeter分布式压测环境 2.3…

自动化测试(一)

利用测试自动化工具&#xff0c;更轻松地编写测试套件&#xff0c;减轻人为干预并提高测试ROI回报率。 业务关键测试用例&#xff0c;重复测试用例&#xff0c;功能测试用例 web自动化测试工具 &#xff1a; QTP一个商业化的功能测试工具&#xff0c;收费&#xff0c;支持web…