十三、highchart实现看板功能

之前对比了ECharts和Highcharts,发现highchart文档更清晰,举的例子也简单明了;而echarts虽然看着很强大,热力图、平行坐标等,官网上列出了一大堆效果图的例子,但是,就是找不到头绪,最后就放弃了Echarts,改用highchart了,ORZ~
某乎上还有讨论:https://www.zhihu.com/question/21438840

html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="/static/js/jquery-2.1.0.js"></script>
    <script type="text/javascript" src="/static/js/json2.js"></script>
    <script type="text/javascript" src="/static/js/highcharts.js"></script>
    <script type="text/javascript" src="/static/js/highcharts-zh_CN.js"></script>
</head>
<body>
    <div class='mycontainer'>
        <br/>
        <div id="showChart"></div>
    </div>
</body>
</html>

javascript:

<script type="text/javascript">
$(document).ready(function(e) {
    loadData();
});

function displayOnChart(value, chartType) {
    /**
     * Highcharts 在 4.2.0 开始已经不依赖 jQuery 了,直接用其构造函数既可创建图表
     **/
    console.log(value['devTime']);
    console.log(value['number']);
    var chart = Highcharts.chart('showChart', {
        chart: {
            type: chartType
        },
        title: {
            text: '各部门情况概览'
        },
        xAxis: {
            categories: value['groups'],
            tickPosition: 'inside',
            // chartdiv宽度是1000px,刻度值平均分配
            tickPixelInterval: 1000 / value.length,
            crosshair: true
        },
        tooltip: {
            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                '<td style="padding:0"><b>{point.y:.2f}</b></td></tr>',
            footerFormat: '</table>',
            shared: true,
            useHTML: true,
            positioner: function() {
                return {
                    x: 80,
                    y: 50
                };
            },
            shadow: false,
            borderWidth: 0
        },
        series: [{
            name: '开发耗时(h)',
            color: '#ED561B',
            data: value['devTime']
        }, {
            name: '测试耗时(h)',
            color: '#24CBE5',
            data: value['testTime']
        }, {
            name: '已上线需求(个)',
            color: 'blue',
            data: value['number']
        }]
    });
}

function loadData() {
    datas = {
        "number": [9, 13, 11, 9, 1, 35, 1, 4, 2],
        "devTime": [32.6, 229.6, 31.0, 67.6, 8.0, 235.2, 16.0, 248.0, 28.0],
        "groups": ["测试1", "测试2", "测试3", "测试4", "测试5", "测试6", "测试7", "测试8", "测试9"],
        "testTime": [12.9, 137.6, 25.5, 45.0, 8.0, 128.79999999999995, 2.5, 53.5, 20.0]
    };
    //可以传column展示柱状图,line展示折线图
    displayOnChart(datas, 'line');
}
</script>

效果如下:
输入图片说明
输入图片说明

jsfiddle上有对应的每个例子,可以参考API文档修改对应的参数,实现自己的目的;

参考文章:
时间不连续的曲线图 https://www.hcharts.cn/demo/highcharts/spline-irregular-time
Highcharts API文档 https://api.hcharts.cn/#Highcharts.dateFormat

转载于:https://my.oschina.net/sshen11111/blog/1526201

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Highcharts是一个用于制作交互式图表的JavaScript库,可以创建各种类型的图表,包括复合图表。 要创建一个复合图表,需要使用Highcharts的组合图表功能,该功能允许将多个图表组合在一起以显示多个数据系列。以下是一个创建复合图表的基本步骤: 1. 创建一个空的Highcharts图表对象。 2. 添加一个或多个数据系列,每个系列对应一个不同的图表类型,例如柱状图、折线图、面积图等。 3. 配置每个数据系列的选项,包括颜色、标签、线型等。 4. 配置图表的整体选项,例如标题、图例、坐标轴等。 5. 将图表渲染到HTML页面中。 下面是一个创建包含柱状图和折线图的复合图表的示例代码: ```javascript // 创建一个空的Highcharts图表对象 var chart = Highcharts.chart('container', { title: { text: '复合图表示例' }, xAxis: { categories: ['一月', '二月', '三月', '四月', '五月', '六月'] }, yAxis: [{ // 配置左侧Y轴 title: { text: '销售额' } }, { // 配置右侧Y轴 title: { text: '利润' }, opposite: true }], series: [{ // 添加第一个数据系列,使用柱状图 name: '销售额', type: 'column', yAxis: 0, data: [100, 200, 150, 250, 300, 200] }, { // 添加第二个数据系列,使用折线图 name: '利润', type: 'line', yAxis: 1, data: [50, 100, 80, 120, 150, 100] }] }); ``` 在上面的代码中,我们创建了一个包含柱状图和折线图的复合图表,其中左侧Y轴表示销售额,右侧Y轴表示利润。柱状图表示销售额,折线图表示利润。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值