Chart.js-柱状图分析(参数分析+例图)

简介: Chart.js-柱状图分析(参数分析+例图)

柱状图样式总览


20200613214548820.png

基本写法


首先在< script >标签里面引入chart.js:

<script src="chart.js/Chart.js"></script>

然后创建一个画布:

<canvas id="myChart" width="400" height="400"></canvas>

最后写js代码:

var ctx = $('#myChart');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ['徐凤年', '裴南苇', '曹长卿', '李淳罡', '王仙芝', '温华'],
        datasets: [{
            label: '# of 战力',
            data: [10, 11, 12, 14, 7, 1],
            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: {
        title: {
                display: true,
                text: '条形图1 - 普通条形图'
            }
    }
});

画出的柱状图如下图:

image.png

参数解析


【注意】以下都是写入在datasets中的参数:

参数名称 类型 默认值 说明
backgroundColor Color 'rgba(0, 0, 0, 0.1)' 单条图形图背景颜色
borderColor Color 'rgba(0, 0, 0, 0.1)' 单条边框的颜色
borderSkipped string 'bottom' 隐藏边界,默认隐藏下方的边界。可选值有:'top''bottom''left''right'false
borderWidth number|object 0 边界的宽度,默认为0。当想为四个边界设置不同值时,用borderWidth:{
'left':1,
'top':...
}
data object[] required 数据结构为数组,是柱状图对应的值。
hoverBackgroundColor Color undefined 类似于css的hover
hoverBorderColor Color undefined 类似于css的hover
hoverBorderWidth number 1 类似于css的hover
label string '' 标签,图例和工具提示中的数据集标签。
barPercentage number 0.9 取值在0-1,bar的宽度占比
categoryPercentage number 0.8 取值在0-1,标签的宽度占比。【注意】bar是在标签中,即标签是bar的容器。
barThickness number|string 设置每个bar的宽度
maxBarThickness number bar的最大宽度
minBarLength number bar的最小高度

【注意】以下参数写在options中:

  • title 整个表的标题。
  • scales–>stacked 控制多个表在X或Y方向上重叠。见图3,图4的代码。
    见代码:
options: {
        title: {
                display: true,
                text: '条形图4 - 叠加条形图'
            },
        scales: {
                    xAxes: [{
                        stacked: true,
                    }],
                    yAxes: [{
                        stacked: true
                    }]
               }
    }

【注意】以下参数写在Chart()的第二个参数中:

  • type 表的类型。图2的水平条形统计图,type值为"horizontalBar"

条形图1 - 普通条形图


var ctx1 = $('#myChart1');
var myChart = new Chart(ctx1, {
    type: 'bar',
    data: {
        labels: ['徐凤年', '裴南苇', '曹长卿', '李淳罡', '王仙芝', '温华'],
        datasets: [{
            label: '# of 战力',
            data: [10, 11, 12, 14, 7, 1],
            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: {
        title: {
                display: true,
                text: '条形图1 - 普通条形图'
            }
    }
});

条形图2 - 水平条形图


var ctx2 = $('#myChart2');
var myChart = new Chart(ctx2, {
    type: 'horizontalBar',
    data: {
        labels: ['徐凤年', '裴南苇', '曹长卿', '李淳罡', '王仙芝', '温华'],
        datasets: [{
            label: '# of 战力',
            data: [10, 11, 12, 14, 7, 1],
            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: {
        title: {
                display: true,
                text: '条形图2 - 水平条形图'
            }
    }
});

条形图3 - 同比(放在一起比较)条形图


var ctx3 = $('#myChart3');
var myChart = new Chart(ctx3, {
    type: 'bar',
    data: {
        labels: ['徐凤年', '裴南苇', '曹长卿', '李淳罡', '王仙芝', '温华'],
        datasets: [{
            label: '# of 战力',
            data: [10, 11, 12, 14, 7, 1],
            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, 
        },{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            type:'bar',
            backgroundColor:'rgba(0, 0, 0, 0.1)',
            borderColor:'rgba(255, 99, 132, 1)',
        }]
    },
    options: {
        title: {
                display: true,
                text: '条形图3 - 同比(放在一起比较)条形图'
            }
    }
});

条形图4 - 叠加条形图


var ctx4 = $('#myChart4');
var myChart = new Chart(ctx4, {
    type: 'bar',
    data: {
        labels: ['徐凤年', '裴南苇', '曹长卿', '李淳罡', '王仙芝', '温华'],
        datasets: [{
            label: '# of 战力',
            data: [10, 11, 12, 14, 7, 1],
            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, 
        },{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            type:'bar',
            backgroundColor:'rgba(0, 0, 0, 0.1)',
            borderColor:'rgba(255, 99, 132, 1)',
        }]
    },
    options: {
        title: {
                display: true,
                text: '条形图4 - 叠加条形图'
            },
        scales: {
                    xAxes: [{
                        stacked: true,
                    }],
                    yAxes: [{
                        stacked: true
                    }]
                }
    }
});
相关文章
|
5月前
|
JavaScript 前端开发 算法
Node.js 艺术:用代码打印出绚丽多彩的控制台柱状图
Node.js 艺术:用代码打印出绚丽多彩的控制台柱状图
78 0
|
4月前
|
Web App开发 前端开发 JavaScript
技术心得记录:瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)
技术心得记录:瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)
45 0
|
4月前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的数据分析岗位招聘信息与分析附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的数据分析岗位招聘信息与分析附带文章源码部署视频讲解等
16 0
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的高校成绩分析附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的高校成绩分析附带文章源码部署视频讲解等
33 0
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的学生成绩分析和弱项辅助系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的学生成绩分析和弱项辅助系统附带文章源码部署视频讲解等
34 0
|
3月前
|
JavaScript
vue + d3.js(v6) 绘制【柱状图/条形图】(含动画和交互)
vue + d3.js(v6) 绘制【柱状图/条形图】(含动画和交互)
23 0
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的高校智能培训管理系统分析与设计附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的高校智能培训管理系统分析与设计附带文章和源代码设计说明文档ppt
34 1
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的法律咨询系统的分析与设计附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的法律咨询系统的分析与设计附带文章和源代码设计说明文档ppt
50 1
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电商数据分析附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电商数据分析附带文章和源代码部署视频讲解等
32 0