甘特图纵向任务、横向时间显示图表可视化开发|Highcharts甘特图示例

在这里插入图片描述

一、JS代码(倒置横向‑向下排布甘特图)

inverted:true 代表坐标轴翻转,普通甘特图:纵向任务、横向时间;倒置甘特图:横向任务、纵向时间轴向下递增

Highcharts.ganttChart('container', {

    chart: {
        inverted: true,
        plotBorderWidth: 1
    },

    title: {
        text: 'Inverted Gantt Chart'
    },

    accessibility: {
        keyboardNavigation: {
            seriesNavigation: {
                mode: 'serialize'
            }
        },
        point: {
            descriptionFormat: '{yCategory}. ' +
                '{#if completed}Task {(multiply completed.amount 100):.1f}% ' +
                'completed. {/if}' +
                'Start {x:%Y-%m-%d}, end {x2:%Y-%m-%d}.'
        }
    },

    lang: {
        accessibility: {
            axis: {
                xAxisDescriptionPlural: 'The chart has a two-part X axis ' +
                    'showing time in both week numbers and days.'
            }
        }
    },

    xAxis: [{
        opposite: false
    }, {
        opposite: false
    }],

    yAxis: {
        uniqueNames: true,
        opposite: true
    },

    series: [{
        name: 'Project 1',
        data: [{
            start: '2018-12-01',
            end: '2018-12-02',
            completed: {
                amount: 0.95
            },
            name: 'Prototyping'
        }, {
            start: '2018-12-02',
            end: '2018-12-05',
            completed: {
                amount: 0.5
            },
            name: 'Development'
        }, {
            start: '2018-12-08',
            end: '2018-12-09',
            completed: {
                amount: 0.15
            },
            name: 'Testing'
        }, {
            start: '2018-12-09',
            end: '2018-12-19',
            completed: {
                amount: 0.3,
                fill: '#fa0'
            },
            name: 'Development'
        }, {
            start: '2018-12-10',
            end: '2018-12-23',
            name: 'Testing'
        }]
    }]
});

二、Highcharts.ganttChart甘特图核心配置解析

1、inverted: true(倒置甘特图最关键)

普通默认甘特图:

  • Y轴:任务名称(上下排列)
  • X轴:时间(从左向右推移)

开启 inverted:true 坐标轴互换:

  • X轴:任务名称(横向排布)
  • Y轴:时间轴(从上往下递增,时间向下流动)>

也就是你所说“翻转向下”的效果,时间顺着页面从上到下走。

2、坐标轴配置

xAxis: [{opposite: false},{opposite: false}]
yAxis: {
    uniqueNames: true,
    opposite: true
}
  • uniqueNames:true:任务名称唯一标识,避免重复任务渲染错位
  • opposite:true:将Y轴(时间刻度)放置在图表右侧,适配倒置布局,防止时间刻度与任务标签互相遮挡

3、任务数据字段说明

字段和标准甘特图完全一致,不受倒置影响

字段说明
start任务开始日期
end任务结束日期
completed.amount完成进度(0‑1),条形内部渲染进度色块
fill单条任务条形自定义颜色(可选)
name任务名称

4、无障碍 accessibility 配置

键盘导航、屏幕阅读器文本描述,汉化后用于读取出任务名、完成百分比、起止日期,适配无障碍系统。

三、倒置甘特图与普通甘特图对比

类型任务排布时间流动方向典型适用场景
标准甘特图垂直上下排列从左→右常规项目进度看板
倒置(inverted)甘特图水平横向排列从上→向下时间流、流程时序图、事件时间线、瀑布式排期

四、开发常见坑点

  1. 坐标轴标签错乱:倒置后X/Y互换,不要沿用普通甘特图的坐标轴样式配置
  2. 任务条形方向错误inverted 必须写在顶层 chart 对象下,不能写在series
  3. 时间标签被截断:倒置后时间轴跑到Y轴,建议开启 yAxis.opposite:true,刻度放右侧,提升可读性
  4. 甘特图模块为Highcharts组件
我也要推广
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值