highcharts报表自定义Y轴扩展属性

请看例子备注:

$(function ({
    var chart;
    $(document).ready(function({
        chart new Highcharts.Chart({
            chart{
                renderTo'container',
                type'line',
                marginRight130,
                marginBottom25
            },
            title{
                text'Monthly Average Temperature',
                x-20 //center
            },
            subtitle{
                text'Source: WorldClimate.com',
                x-20
            },
            xAxis{
                categories['Jan''Feb''Mar''Apr''May''Jun',
                    'Jul''Aug''Sep''Oct''Nov''Dec']
            },
            yAxis{
                title{
                    text'Temperature (°C)'
                },
                plotLines[{
                    value0,
                    width1,
                    color'#808080'
                }]
            },
            tooltip{
                formatterfunction({
                        return '<b>'this.series.name +'</b><br/>'+
                        this.+': 'this.+'°C'+
                            '<br/>扩展属性:'+this.point.extendRemark;
                }
            },
            legend{
                layout'vertical',
                align'right',
                verticalAlign'top',
                x-10,
                y100,
                borderWidth0
            },
           series[{"name":"设备1号","data":[{"y":4,"extendRemark":"08:58"},{"y":4,"extendRemark":"09:03"},{"y":4,"extendRemark":"09:09"},{"y":4,"extendRemark":"09:14"},{"y":4,"extendRemark":"09:19"},{"y":4,"extendRemark":"09:24"},{"y":4,"extendRemark":"09:29"},{"y":4,"extendRemark":"09:33"}]}]
            
        });
    });
    
});

Highcharts Gantt 中,自定义 x 内容主要围绕时间的格式化、刻度间隔、标签样式、网格线样式等进行配置。通过这些设置,可以实现对时间线的精细控制,使其更符合业务需求。 ### 自定义时间格式 Highcharts Gantt 的 x 默认为时间,类型为 `'datetime'`。通过 `dateTimeLabelFormats` 属性,可以为不同时间单位(如秒、分钟、小时、天、周、月、年)设置不同的显示格式。例如,设置 `day` 格式为 `'%Y-%m-%d'`,表示在 x 上显示完整的年份、月份和日期。 ```javascript xAxis: { type: 'datetime', dateTimeLabelFormats: { day: '%Y-%m-%d' } } ``` 此外,也可以根据实际需求调整其他时间单位的格式,例如: ```javascript dateTimeLabelFormats: { second: '%H:%M:%S', minute: '%e. %b %H:%M', hour: '%b/%e %H:%M', day: '%e日/%b', week: '%e. %b', month: '%b %y', year: '%Y' } ``` 这些格式设置可以确保时间的标签更符合用户阅读习惯[^3]。 ### 调整刻度间隔 为了控制时间上刻度的密度,可以使用 `tickInterval` 来设置相邻刻度之间的间隔,单位为毫秒。例如,若希望每天显示一个刻度,可以设置为一天的毫秒数 `24 * 3600 * 1000`。若希望每周显示一个刻度,则可以设置为 `7 * 24 * 3600 * 1000`。 ```javascript xAxis: { tickInterval: 24 * 3600 * 1000 // 一天的毫秒数 } ``` 此外,`tickPixelInterval` 可以控制图表中刻度之间的像素距离,用于优化视觉效果,避免刻度过密或过疏。 ```javascript xAxis: { tickPixelInterval: 150 } ``` ### 自定义标签样式 x 的标签可以通过 `labels` 属性进行样式调整,包括字体大小、颜色、旋转角度等。例如,将标签旋转 -45 度以避免重叠,并设置字体颜色为白色: ```javascript xAxis: { labels: { rotation: -45, style: { color: '#FFF', fontSize: '12px' } } } ``` 也可以结合 `formatter` 函数实现更复杂的自定义标签内容,例如根据条件改变颜色或添加 HTML 标签。 ```javascript labels: { formatter: function () { return '<span style="color:#DD3B51">' + Highcharts.dateFormat('%Y-%m-%d', this.value) + '</span>'; } } ``` ### 设置 x 标题 x 的标题可以通过 `title` 属性进行设置,包括文本内容、对齐方式、字体大小和颜色等。例如: ```javascript xAxis: { title: { text: '时间线', align: 'high', style: { color: '#EEE', fontSize: '11px' } } } ``` ### 网格线样式 时间的网格线可以通过 `gridLineDashStyle` 设置为虚线样式,以提升可读性并减少视觉干扰。 ```javascript xAxis: { gridLineDashStyle: 'dash' } ``` 同时,`gridLineWidth` 可以控制网格线的宽度,`gridZIndex` 控制网格线的层级。 ### 示例完整配置 以下是一个完整的 x 配置示例,结合了时间格式、刻度间隔、标签样式、标题和网格线设置: ```javascript xAxis: { type: 'datetime', dateTimeLabelFormats: { day: '%Y-%m-%d' }, tickInterval: 24 * 3600 * 1000, tickPixelInterval: 150, labels: { rotation: -45, style: { color: '#FFF', fontSize: '12px' } }, title: { text: '时间线', align: 'high', style: { color: '#EEE', fontSize: '11px' } }, gridLineDashStyle: 'dash' } ``` ### 结合任务数据 在 Gantt 图中,x 通常与任务的时间范围相关联,开发者需要确保数据中的 `start` 和 `end` 字段与 x 的时间格式一致。例如,任务数据可以定义如下: ```javascript series: [{ type: 'gantt', data: [{ start: Date.UTC(2025, 3, 1), end: Date.UTC(2025, 3, 5), name: '任务 A' }] }] ``` 通过上述配置,开发者可以灵活地定义和调整 Highcharts Gantt 图的 x 内容,从而满足不同的时间线展示需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值