Highchart:轴的背景颜色

时间:2013-11-27 12:17:44

标签: highcharts

我看到了类似的问题here

作为回复,我们写道,我们可以通过制作一个矩形来获得背景颜色。

我的问题是我如何获得轴上所有刻度线的xY位置。我需要它,因为我只想在交替日期使用背景颜色。

由于

2 个答案:

答案 0 :(得分:5)

这是一个在第2和第4个刻度之间的阴影的快速示例:

var tickStart = 1;
var tickEnd = 3;

$(function () {

   var rect = null;
   function drawRect(chart){
       if (rect){
           rect.element.remove();   
       }        

        var xAxis = chart.xAxis[0];  
        var pixStart = xAxis.toPixels (xAxis.tickPositions[tickStart], false);
        var pixEnd = xAxis.toPixels (xAxis.tickPositions[tickEnd], false);
        rect = chart.renderer.rect(pixStart, chart.chartHeight - xAxis.bottom, pixEnd - pixStart , 25, 00)
        .attr({
           'stroke-width': 0,
           stroke: '#888888',
           fill: '#888888',
           zIndex: 3
        })
        .add();
    }

    $('#container').highcharts({
        chart: {
            events: {
                load: function() {
                    drawRect(this);
                },
                redraw: function(){
                    drawRect(this);
                }
            }        
        },
        xAxis: {
        },

        series: [{
            animation: false,
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]     
        }]
    });
});

小提琴here

enter image description here

答案 1 :(得分:4)

您是否尝试将labels.formatter用于背景和useHTML标记?这样的事情:http://jsfiddle.net/AeV7h/

    xAxis: {
        categories: ['Foo', 'Bar', 'Foobar'],

        labels: {
            useHTML: true,
            formatter: function() {
                return '<span class="hc-label">' + this.value + '</span>';
            }
        }
    },

和CSS:

.hc-label {
  background-color: red;
  padding: 0px 5px;
  color: yellow;
}