常用的9个JavaScript图表库详解

常用的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日

相关文章

  • 使用UglifyJS合并/压缩JavaScript的方法

    当我们开发JavaScript应用程序时,经常需要将多个JavaScript模块进行合并,并对合并后的JavaScript代码进行压缩,以减小文件大小,提高加载速度。这个过程可以使用UglifyJS完成。以下是使用UglifyJS合并/压缩JavaScript的方法: 准备工作 在开始使用UglifyJS之前,我们需要先安装Node.js和npm包管理器。安…

    JavaScript 2023年5月27日
    00
  • JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现

    JavaScript高级程序设计 阅读笔记(十四)讲解了JavaScript中的继承机制以及其实现方式。下面是我总结的一个完整攻略: 继承机制的本质 JavaScript采用原型(prototype)继承机制。当访问一个对象的属性时,JavaScript引擎会首先查找该对象自身是否有这个属性。如果存在,则直接返回该属性值;如果不存在,则继续查找该对象的原型对…

    JavaScript 2023年5月27日
    00
  • js中精确计算加法和减法示例

    JS中精确计算加法和减法可以使用第三方库BigDecimal.js进行操作。以下是完整攻略: BigDecimal.js 简介 BigDecimal.js官方文档:http://mikemcl.github.io/big.js/ 。该库从ECMAScript 5开始可以跨平台使用。该库通过兼容JavaScript中的Number类型来进行扩展和覆盖,返回精确…

    JavaScript 2023年6月10日
    00
  • jQuery实现图像旋转动画效果

    下面是“jQuery实现图像旋转动画效果”的完整攻略: 1. 引入jQuery库 首先需要在html文件中引入jQuery库,可以通过以下方式进行引入: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script&…

    JavaScript 2023年6月11日
    00
  • javascript Array 数组常用方法

    JavaScript Array 数组常用方法 JavaScript 中的Array(数组)是一个用于存储多个值的对象。通过使用数组,可以将一组相关的值作为整体操作。这里,我们列举出了常用的数组操作方法。 1. 创建数组 可以通过以下两种方式创建数组: 使用数组字面量(Array Literal) var arr = [1, 2, 3]; 使用Array的构…

    JavaScript 2023年5月27日
    00
  • jsp+ajax发送GET请求的方法

    当需要在JSP页面中使用ajax发送GET请求时,可以参照以下步骤进行操作: 步骤一:引入jQuery库文件 使用ajax发送请求时需要引入jQuery库文件。可以在head标签中使用以下代码引入: <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js&quot…

    JavaScript 2023年6月11日
    00
  • JS按钮连击和接口调用频率限制防止客户爆仓

    JS按钮连击和接口调用频率限制防止客户爆仓是前端开发中非常重要的两个问题,此处进行详细讲解。 JS按钮连击 在网页中,用户经常会通过点击按钮等界面元素执行某些操作。如果用户在短时间内多次连续点击同一个按钮,就会引发“按钮连击”问题。如何避免JS按钮连击问题呢?下面介绍几种常用的方法: 1. 禁用按钮 可以在按钮第一次点击时禁用按钮,在处理完当前请求后再重新启…

    JavaScript 2023年6月10日
    00
  • JS实现的抛物线运动效果示例

    下面我将为你详细讲解“JS实现的抛物线运动效果示例”的完整攻略。具体内容如下: 抛物线运动效果实现的原理 在实现抛物线运动效果之前,我们需要先了解它的基本原理。通俗地说,抛物线运动是指一种自由落体运动,其加速度大小保持不变,但方向发生变化,运动轨迹呈现抛物线形状。在应用中,我们可以通过以下公式来计算抛物线运动的位置: x = vx * t + x0; y =…

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