Morris.JS X轴标签高度

时间:2013-10-31 19:45:01

标签: jquery labels morris.js

我有一张用Morris.JS生成的图表,但x轴上的标签很长并且由于显示标签的区域的高度有限而被切断。

下面的代码将呈现仅显示“COUNTY PARK ROAD ELEM。”的部分标签的图表。如何调整标签区域的高度以显示整个文本?

代码如下

if ($('#IP1').length){ 

    Morris.Bar({
      element: 'IP1',
      data: [           
            {x: 'COUNTY PARK ROAD ELEM.', yIndex: 376.92}                   
      ],
      xkey: 'x',
      ykeys: ['yIndex'],
      labels: ['Index Points'],
      ymax: 500,
      barRatio: 0.2,
      xLabelAngle: 45,
      hideHover: 'auto'
    });
}

5 个答案:

答案 0 :(得分:13)

对我有用的解决方案是增加svg标签的大小

$('svg').height(700);

答案 1 :(得分:6)

除了增加包含图表的元素的高度之外,您还可以在Morris.Bar上设置填充选项,以便为x轴上的标签提供更多空间。

Morris.Bar({
  ...
  padding: 50,
  ...
});

答案 2 :(得分:2)

尝试将(当前未记录的)xLabelMargin选项更改为较小的值 - 它设置x轴上标签之间的最小边距。如果标签比边距更近,则不会绘制它们。

例如:

Morris.Bar({
  // ...
  xLabelMargin: 10
})

https://github.com/morrisjs/morris.js/issues/235

答案 3 :(得分:0)

如果在指令中,您可以使用以下内容:

//in pixels
var heightToAdd = 30;    
var svg = element.find("svg")[0];
svg.height.baseVal.value += heightToAdd;

答案 4 :(得分:0)

像下面这样简单地添加潜水

<div id="chart"></div>

并为div上方添加样式,例如

#chart{
  height:400px;
}