2016-07-15 205 views
1

在Highcharts中,我想将y轴标题置于顶部并使其与y轴标签左对齐。在Highcharts中左对齐带有标签的y轴标题

我已经试过这样:

$('#container').highcharts({ 
    ... 
    yAxis: { 
     ... 
     title: { 
      align: 'high', 
      text: 'Y-axis title', 
      rotation: 0, 
      y: -10, 

      //To left-align title with labels 
      textAlign: 'left', //This is undocumented, but appears to work 
      margin: 0 
     } 
    } 
}) 

不过,我得到过多的左旁这似乎是成正比的y轴标题的长度。

Highcharts left-align y-axis title JsFiddle

它看起来像保证金计算不考虑textAlign: 'left'设置。

更新:我应该说,我目前的“解决方案”是设置一个边距chart.marginLeft但这并不理想,因为它是固定的。左边距应该足够大以容纳轴标签(不管它们可能大)。

如何将Y轴标题与标签左对齐并具有合理的左边距?

+0

我认为,在这里你可以找到你的问题的解决方案:http://stackoverflow.com/questions/38327772/highstock-yaxis-label-top?noredirect=1#comment64072862_38327772 –

+0

谢谢Grzegorz。我应该在我的问题(并且现在)中说过,我宁愿不使用'marginLeft',因为它是一个固定值,不会适应标签的大小。 –

回答

0

我决定使用marginLeft(是的,你的阅读正确),但基于长度的轴标签,以提供所需的灵活性。

我在这里所做的是将你的图表选项设置为一个名为chartOptions的变量。然后我计算了轴标题的长度(字符数),根据该值设置marginLeft属性,然后用修改的图表选项画出图表。

chartOptions.chart.marginLeft = chartOptions.yAxis.title.text.length; 
var chart = $('#container').highcharts(chartOptions); 

这里的工作小提琴:http://jsfiddle.net/brightmatrix/6eeuay58/9/

我增加了一些数据点的不同数量进行了测试。

请让我知道这是否有用,对你有帮助。