首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Highcharts当父容器很小时,在datetime x轴上显示每个月

Highcharts当父容器很小时,在datetime x轴上显示每个月
EN

Stack Overflow用户
提问于 2014-01-31 03:15:56
回答 1查看 24.1K关注 0票数 5

我有一个有两条线的highcharts图。X轴是datetime类型。

我想在x轴上为所有日期范围内的每个月添加一个标记记号:7月11日、8月11日、9月11日等。

如果我将我的父容器设置为非常宽,则显示所有每月刻度的唯一方式。然而,我的产品布局只有一个695px的容器。

当我处于较小的宽度时,如何强制所有刻度显示?

I have a fiddle here

下面是我的代码:

代码语言:javascript
复制
var chart;
var lineIndex = 0,splineIndex=0;
$(document).ready(function() {
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            zoomType: 'xy'
        },
        exporting: { enabled: false },
        title: {
            text: ''
        },
        legend:{
            itemStyle: {
                fontSize: '13px',
                fontFamily: 'Arial,sans-serif'
            }
        },
        xAxis: {
            type: 'datetime',
            min: Date.UTC(2011, 4, 31),
            max: Date.UTC(2012, 11, 6),
            labels: {
                step: 1,
                style: {
                    fontSize: '13px',
                    fontFamily: 'Arial,sans-serif'
                }
            },
            dateTimeLabelFormats: { // don't display the dummy year
                month: '%b \'%y',
                year: '%Y'
            }
        },
        yAxis: [{ // Primary yAxis
            labels: {
                style: {
                    fontSize: '13px',
                    fontFamily: 'Arial,sans-serif'
                    },
                formatter: function() {
                    return '$' + Highcharts.numberFormat(this.value,2,'.',",");
                }
            },
            title: {
                text: '',
                style: {
                    color: '#89A54E'
                },
            },
            max:.85,                
            opposite: true   
        }, { // Secondary yAxis
            gridLineWidth: 0,
            title: {
                text: ''
            },
            min:9000,
            max:12000,
            labels: {
                style: {
                    fontSize: '13px',
                    fontFamily: 'Arial,sans-serif'
                },
                formatter: function() {
                    return '$' + Highcharts.numberFormat(this.value,0,".",",");
                }
            }
        }],
        tooltip: {
            enabled: false
        },
        plotOptions: {
            line: {
                dataLabels: {
                    enabled: true,
                    useHTML: true,
                    formatter: function() {
                        if(this.y == 10000) {
                            return '<div class="tweak">$' + Highcharts.numberFormat(Math.round(this.y),0,".",",") + '</div>';
                        } else if (this.y > 5) {
                            return '<div class="tweak-0">$' + Highcharts.numberFormat(Math.round(this.y),0,".",",") + '</div>';
                        } else if (this.x == Date.UTC(2011, 11, 1)) { // grab values for special dates and assign tweak classes so we can adjust the label spacing
                            return '<div class="tweak-1">$' + Highcharts.numberFormat(this.y,3,".",",") + '</div>';
                        } else if (this.x == Date.UTC(2012, 1, 1)) { 
                            return '<div class="tweak-2">$' + Highcharts.numberFormat(this.y,3,".",",") + '</div>';
                        } else if (this.x == Date.UTC(2011, 7, 1) || this.x == Date.UTC(2012, 7, 1) ) { 
                            return '<div class="tweak-3">$' + Highcharts.numberFormat(this.y,2,".",",") + '</div>';
                        } else if ( this.x == Date.UTC(2012, 0, 17) ) {
                            return '<div class="tweak-4">$' + Highcharts.numberFormat(this.y,3,".",",") + '</div>';
                        }
                    }}
            }
        },
        credits: {
            enabled: false
        },
        series: [{
            name: 'Growth of $10,000 Investment',
            type: 'line',
            color: '#002d56',
            yAxis: 1,
            data: [
              [Date.UTC(2011, 5, 1), 10000],
              [Date.UTC(2011, 8, 1), 9996],
              [Date.UTC(2011, 11, 1), 10652],
              [Date.UTC(2012, 2, 1), 11387],
              [Date.UTC(2012, 5, 1), 11586],
              [Date.UTC(2012, 8, 1), 11984],
              [Date.UTC(2012, 11, 1), 12179]
            ]
        }, {
            name: 'Historical Distributions Per Share',
            color: '#762123',
            type: 'line',
            enableMouseTracking: false,
            data: [
                [Date.UTC(2011, 5, 1), 0.70],
                [Date.UTC(2011, 6, 1), 0.70],
                [Date.UTC(2011, 7, 1), 0.70],
                [Date.UTC(2011, 8, 1), 0.70],
                [Date.UTC(2011, 9, 1), 0.70],
                [Date.UTC(2011, 9, 25), 0.70],
                [Date.UTC(2011, 10, 1), 0.717],
                [Date.UTC(2011, 11, 1), 0.717],
                [Date.UTC(2012, 0, 10), 0.717],
                [Date.UTC(2012, 0, 17), 0.728],
                [Date.UTC(2012, 0, 24), 0.728],
                [Date.UTC(2012, 0, 31), 0.745],
                [Date.UTC(2012, 1, 1), 0.745],
                [Date.UTC(2012, 1, 28), 0.745],
                [Date.UTC(2012, 2, 6), 0.76],
                [Date.UTC(2012, 2, 13), 0.76],
                [Date.UTC(2012, 2, 20), 0.76], 
                [Date.UTC(2012, 2, 27), 0.76], 
                [Date.UTC(2012, 3, 3), 0.76], 
                [Date.UTC(2012, 3, 10), 0.76],
                [Date.UTC(2012, 3, 17), 0.76], 
                [Date.UTC(2012, 3, 24), 0.76], 
                [Date.UTC(2012, 4, 1), 0.76], 
                [Date.UTC(2012, 4, 8), 0.76], 
                [Date.UTC(2012, 4, 15), 0.76], 
                [Date.UTC(2012, 4, 22), 0.76], 
                [Date.UTC(2012, 4, 29), 0.76], 
                [Date.UTC(2012, 5, 5), 0.76], 
                [Date.UTC(2012, 5, 12), 0.76], 
                [Date.UTC(2012, 5, 19), 0.76], 
                [Date.UTC(2012, 5, 26), 0.76], 
                [Date.UTC(2012, 6, 3), 0.76], 
                [Date.UTC(2012, 6, 10), 0.76], 
                [Date.UTC(2012, 6, 17), 0.76], 
                [Date.UTC(2012, 6, 24), 0.76], 
                [Date.UTC(2012, 6, 31), 0.76],
                [Date.UTC(2012, 7, 1), 0.76],
                [Date.UTC(2012, 7, 7), 0.76], 
                [Date.UTC(2012, 7, 14), 0.76], 
                [Date.UTC(2012, 7, 21), 0.76], 
                [Date.UTC(2012, 7, 28), 0.76], 
                [Date.UTC(2012, 8, 4), 0.76], 
                [Date.UTC(2012, 8, 11), 0.76], 
                [Date.UTC(2012, 8, 18), 0.76], 
                [Date.UTC(2012, 8, 25), 0.76],
                [Date.UTC(2012, 11, 1), 0.76]    
            ],
            marker: {
                enabled: false
            }
        }]
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-31 03:29:40

您可以将tickInterval添加到xAxis属性:

代码语言:javascript
复制
...
tickInterval: 30 * 24 * 3600 * 1000,
...

将会出现一些重叠,因此可能还需要对标签进行一点rotate

请参阅此jsfiddle

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21465508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档