2

我有一个柱形图与图表上的线条图相结合。当将图表容器的宽度减小到小于 357px 的值时,水平线仅绘制到一半而不是全宽。

chart = new Highcharts.Chart({
            chart: {
                renderTo: 'chartcontainer',
                defaultSeriesType: 'column',
                borderRadius:0,
                marginRight: 22,
                marginBottom: 140
            },
            title: {
                text: 'test norm',
                align: 'left'
            },
            xAxis: [{
                title: {
                    text: 'x',
                    style: {

                    }
                },
                categories: ['2008','2009','2010','2011','2012'],
                labels: {
                    style: {
                    }
                }
            },
            { //secondary xAxis for range and norm values
              gridLineWidth: 0, 
              labels:{
                  enabled:false
              },
              lineWidth:0,
              tickWidth:0,
              opposite: true,
              minPadding:0,
              maxPadding:0
            }
            ],
            yAxis: {
                title: {
                    text: 'y',
                    style: {
                    }
                },
                labels: {
                    style: {
                    }
                }
            },
            legend: {
                layout: 'vertical',
                align: 'left',
                verticalAlign: 'bottom',
                width:700,
                borderRadius: 0,
                shadow:false,
                floating:true,          
                borderWidth: 0                                  
            },
            navigation: {
                buttonOptions: {
                    enabled: false
                }
            },
            tooltip: {
                borderRadius: 0,
                borderWidth: 1,
                backgroundColor: '#FFFFFF',
                shadow: false,
                style: {
                    font: 'bold 11px Arial, Verdana, sans-serif',
                    fontWeight: 'bold'
                },                          
                formatter: function() {
                        return '<b>'+ this.x +'</b><br/>'+ this.series.name +': '+ this.y +'<br/>';
                }
            },
            plotOptions: {
                column: {
                    dataLabels: {
                         enabled: false
                    },
                    shadow: false
                }
            },
            series: [{ name: 'A', shadow: false, data: [8,2,8,4,6] },{ name: 'B', shadow: false, data: [1,4,2,3,4] },{ name: 'C', shadow: false, data: [4,16,8,12,16] },{ name: 'E', shadow: false, data: [8,4,6,8,2] },{
type:'line',
name:'Norm',

data:[
    { 
        y:10.000000,            
        x:0.000000,
        dataLabels: {
            enabled: false,
            align: 'left',
            formatter:function(){return 'Norm: ' + this.y;},
            style: {fontWeight:'bold'}
        },

    },
    {
        y:10.000000,
        x:1.000000,
        dataLabels: {
            enabled: true,
            align: 'right',
            formatter:function(){return 'Norm: ' + this.y;},
            style: {fontWeight:'bold'}
        },
    }
],
color: '#01A1EB',
lineWidth:1,
dashStyle:'Solid',
shadow: {
    opacity:0.1
},
enableMouseTracking:false,
marker:{enabled:false},
xAxis:1,
showInLegend: true

}] });

在此处查看我的 jsfiddle 示例:完全绘制的线:

http://jsfiddle.net/ramon_ackermann/WwSbT/7/

这条线只有一半:http: //jsfiddle.net/ramon_ackermann/WwSbT/8/

有什么想法可能导致这种情况吗?

干杯。

4

2 回答 2

2

在 y 轴上使用 Plotline:http: //jsfiddle.net/paranoir/WwSbT/9/

plotLines: [{
    color: '#FF0000',
    width: 1,
    value: 10
}]
于 2013-02-27T09:13:40.177 回答
1

Plotline 也是我的首选。

但是,如果出于某种原因需要将其作为系列,则可以这样做:

1)将线的最小 x 值设置为 -0.5,最大 x 值设置为 4.5 2)将 xAxis 最小值设置为 0,最大值设置为 4 3)忘记辅助 x 轴

http://jsfiddle.net/jlbriggs/WwSbT/10/

for the x axis:
xAxis: [{
  min:0,
  max:4,
}]

and then in the data:
...
  y:10.000000,            
  x:-0.5,
...
  y:10.000000,
  x:4.5,

第二个 x 轴似乎是问题的一部分。如果您隐藏标准系列,然后重新显示它,它会正确填充绘图区域。

于 2013-02-27T14:20:27.600 回答