常用的9个JavaScript图表库详解

yizhihongxing

常用的9个JavaScript图表库详解

1. Chart.js

Chart.js 是一个使用 HTML5 canvas 元素创建图表的 JavaScript 库。它可以绘制多种类型的图表,例如线性图、柱状图、饼图等等。

Chart.js 具有良好的文档和易于使用的 API。它适合初学者和有经验的开发者。

以下是一个简单的例子:

<canvas id="myChart" width="400" height="400"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
});
</script>

2. D3.js

D3.js 是一个 JavaScript 库,用于创建动态、交互式数据可视化的 Web 应用程序。D3.js 不是一个普通的图表库,而是一个更低级别的库。它允许开发者创建自定义图表。

D3.js 具有高度灵活的 API 和强大的选择器功能。开发者需要更多的经验才能将其应用到实际项目。

以下是一个简单的例子:

<svg width="500" height="300"></svg>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script>
var svg = d3.select("svg");
var width = parseFloat(svg.attr("width"));
var height = parseFloat(svg.attr("height"));

var dataset = [5, 10, 15, 20, 25];

svg.selectAll("rect")
    .data(dataset)
    .enter()
    .append("rect")
    .attr("x", function(d, i) {
        return i * (width / dataset.length);
    })
    .attr("y", function(d) {
        return height - d * 10;
    })
    .attr("width", width / dataset.length - 1)
    .attr("height", function(d) {
        return d * 10;
    })
    .attr("fill", "steelblue");
</script>

3. Highcharts

Highcharts 是一个纯 JavaScript 创建图表的库,支持多种类型的图表,例如线性图、区域图、柱状图等等。

Highcharts 具有易于使用的 API 和完善的文档。它提供了丰富的配置选项和交互功能。

以下是一个简单的例子:

<div id="container"></div>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script>
Highcharts.chart('container', {
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Fruit Consumption'
    },
    xAxis: {
        categories: ['Apples', 'Bananas', 'Oranges']
    },
    yAxis: {
        title: {
            text: 'Fruit eaten'
        }
    },
    series: [{
        name: 'Jane',
        data: [1, 0, 4]
    }, {
        name: 'John',
        data: [5, 7, 3]
    }]
});
</script>

4. Google Charts

Google Charts 是由 Google 开发的一个 Web 应用程序图表库。它可以绘制多种类型的图表,例如线性图、饼图、柱状图等等。

Google Charts 具有易于使用的 API 和完善的文档。它还提供了一个图表编辑器,使开发者可以通过拖放和单击等方式轻松创建图表,并可直接将它们嵌入到 Web 应用程序中。

以下是一个简单的例子:

<div id="chart_div"></div>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
    var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work',     11],
          ['Eat',      2],
          ['Commute',  2],
          ['Watch TV', 2],
          ['Sleep',    7]
        ]);

    var options = {
          title: 'My Daily Activities'
        };

    var chart = new google.visualization.PieChart(document.getElementById('chart_div'));

    chart.draw(data, options);
}
</script>

5. Morris.js

Morris.js 是一个基于 jQuery 的图表库,用于绘制区域图、线性图和柱状图。它使用 HTML5 和 SVG 元素绘制图表。

Morris.js 具有易于使用的 API,但文档相对简单。它适合初学者和中级开发者。

以下是一个简单的例子:

<div id="myfirstchart" style="height: 250px;"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<script>
Morris.Bar({
    element: 'myfirstchart',
    data: [
        {x: '2011 Q1', y: 3},
        {x: '2011 Q2', y: 2},
        {x: '2011 Q3', y: 1},
        {x: '2011 Q4', y: 2},
        {x: '2012 Q1', y: 3},
        {x: '2012 Q2', y: 1},
        {x: '2012 Q3', y: 2},
        {x: '2012 Q4', y: 4},
        {x: '2013 Q1', y: 3},
        {x: '2013 Q2', y: 2}
    ],
    xkey: 'x',
    ykeys: ['y'],
    labels: ['Y'],
    barColors: function (row, series, type) {
        if (type === 'bar') {
            var red = Math.ceil(255 * row.y / this.ymax);
            return 'rgb(' + red + ', 0, 0)';
        }
        else {
            return '#000';
        }
    }
});
</script>

6. C3.js

C3.js 是一个使用 D3.js 创建可重用的交互式图表的库。它支持线性图、饼图、柱状图等。

C3.js 具有易于使用的 API 和灵活的配置选项。它提供了一组预定义的模板,使开发者能够轻松地创建图表。

以下是一个简单的例子:

<div id="chart"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.14/c3.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.14/c3.min.css" rel="stylesheet">
<script>
var chart = c3.generate({
    bindto: '#chart',
    data: {
        columns: [
            ['data1', 30, 200, 100, 400, 150, 250],
            ['data2', 50, 20, 10, 40, 15, 25]
        ]
    }
});
</script>

7. Chartist.js

Chartist.js 是一个使用 SVG 元素创建响应式图表的 JavaScript 库。它支持线性图、饼图和柱状图等类型的图表,并具有良好的文档和易于使用的 API。

Chartist.js 支持修改 CSS 样式,使开发者能够轻松地自定义图表的外观和感觉。

以下是一个简单的例子:

<div class="ct-chart ct-golden-section"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.11.4/chartist.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.11.4/chartist.min.css" rel="stylesheet">
<script>
new Chartist.Bar('.ct-chart', {
    labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
    series: [
        [5, 2, 4, 2, 0, 3],
        [3, 4, 2, 1, 5, 2]
    ]
});
</script>

8. FusionCharts

FusionCharts 是一个用于绘制多达 100 种图表类型的 JavaScript 库。它支持线性图、面积图、柱状图、漏斗图等等。

FusionCharts 具有完善的文档和易于使用的 API。它支持可定制的主题,使开发者可以轻松地自定义它们的图表。

以下是一个简单的例子:

<div id="chart-container"></div>
<script src="https://cdn.fusioncharts.com/fusioncharts/latest/fusioncharts.js"></script>
<script src="https://cdn.fusioncharts.com/fusioncharts/latest/themes/fusioncharts.theme.fusion.js"></script>
<script>
FusionCharts.ready(function() {
    var revenueChart = new FusionCharts({
        type: 'column2d',
        renderAt: 'chart-container',
        width: '500',
        height: '300',
        dataFormat: 'json',
        dataSource: {
            "chart": {
                "caption": "Quarterly Revenue",
                "xAxisName": "Quarter",
                "yAxisName": "Revenue (In USD)",
                "theme": "fusion"
            },
            "data": [{
                "label": "Q1",
                "value": "125000"
            }, {
                "label": "Q2",
                "value": "257000"
            }, {
                "label": "Q3",
                "value": "173000"
            }, {
                "label": "Q4",
                "value": "182000"
            }]
        }
    }).render();
});
</script>

9. ECharts

ECharts 是一个基于 JavaScript 的开源可视化库,可以处理大量的图表类型,例如地图、饼图、力导向图等等。

ECharts 具有强大的文档和易于使用的 API。它还支持响应式设计,并且支持移动设备。

以下是一个简单的例子:

<div id="main" style="width: 600px;height:400px;"></div>
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
<script>
var myChart = echarts.init(document.getElementById('main'));
myChart.setOption({
    title: {
        text: 'ECharts 入门示例'
    },
    tooltip: {},
    xAxis: {
        data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
});
</script>

以上便是常用的 9 个 JavaScript 图表库的详细讲解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:常用的9个JavaScript图表库详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • asp.net动态添加js文件调用到网页的方法

    ASP.NET 动态添加 JS 文件调用到网页主要有以下几个步骤: 首先,在 ASP.NET 页面中添加 ScriptManager 控件。这个控件可以将页面上的 JS 文件或脚本框架统一管理。 示例代码如下: <asp:ScriptManager ID="ScriptManager1" runat="server&quo…

    JavaScript 2023年6月11日
    00
  • JS中定时器的使用及页面切换时定时器无法清除问题的解决办法

    JS中定时器的使用及页面切换时定时器无法清除问题的解决办法 在开发中,定时器是经常使用的工具,可以让我们在某个时间间隔内执行一段代码。JS中常用的定时器有setTimeout和setInterval两种。 使用setTimeout setTimeout是在指定的一段时间后执行一段代码,且只会执行一次。可以使用clearTimeout取消定时器,代码示例如下:…

    JavaScript 2023年6月11日
    00
  • Html5页面内使用JSON动画的实现

    下面我将详细讲解HTML5页面内使用JSON动画的实现攻略,包括以下内容: 前置技能要求 JSON动画的实现步骤 示例说明 前置技能要求 在学习JSON动画实现之前,建议您掌握以下技能: HTML/CSS基础 JavaScript基础 JSON格式的理解及使用 JSON动画的实现步骤 以下为HTML5页面内使用JSON动画实现的步骤: 首先,在HTML文件中…

    JavaScript 2023年5月27日
    00
  • 详解ES6中的let命令

    我来为你详细讲解ES6中的let命令的完整攻略。 什么是let命令 在ES6中,let命令是用来声明变量的,与之前的var命令不同的是,let声明的变量只在块级作用域内部有效,不存在变量提升的现象,且不可重复声明。 块级作用域 什么是块级作用域?块级作用域就是在花括号内部的作用域,通常用来限制变量的作用范围。 示例1 { let a = 1; var b =…

    JavaScript 2023年6月11日
    00
  • JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)

    获取鼠标移动时的坐标是前端开发中常用的操作。随着浏览器的不断升级和发展,现在的浏览器大多都能支持 mousemove 事件和相应的 clientX、clientY 属性来获取鼠标的坐标。不过对于兼容老版本IE(IE8及以下)的浏览器,我们需要使用其他的方式来获取鼠标坐标。 以下是 JavaScript 获取鼠标移动时的坐标的完整攻略: 1. 监听mousem…

    JavaScript 2023年6月11日
    00
  • JavaScript ES 模块的使用

    当我们在编写 JavaScript 代码时,常常会遇到文件依赖管理、代码模块化等问题。在过去,我们需要使用模块加载器(Module Loader)来实现对 JavaScript 模块进行加载和管理,比如 RequireJS、SystemJS 等等。但是在 ES6 规范中,JavaScript 原生支持模块,我们可以使用 import 和 export 关键字…

    JavaScript 2023年5月27日
    00
  • JavaScript数组去重的方法总结【12种方法,号称史上最全】

    我将根据您提供的问题,详细讲解如何使用JavaScript实现数组去重。请注意,这是一个12种方法的综合总结,包括常规的方法和使用ES6的新语法实现的方法,希望您能够学到一些有用的知识。 一、常规方法 1. 使用for循环双重遍历 该方法使用两重循环遍历整个数组,内部循环从外部循环的下一个元素开始,如果找到一个与当前元素相同的元素,则将其从数组中删除。时间复…

    JavaScript 2023年5月27日
    00
  • Javascript Array shift 方法

    以下是关于JavaScript Array shift方法的完整攻略。 JavaScript Array shift方法 JavaScript Array shift方法用于从数组的开头删除一个元素,并返回该元素的值。该方法会改变原始数组,即从原始数组中删除元素。 下是一个使用shift方法的示例: var arr = [1, 2, 3]; console.…

    JavaScript 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部