3

我有一个用 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'
    });
}
4

5 回答 5

15

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

$('svg').height(700);
于 2013-11-09T09:49:34.173 回答
6

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

Morris.Bar({
  ...
  padding: 50,
  ...
});
于 2014-08-15T17:14:07.370 回答
2

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

例如:

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

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

于 2016-03-17T14:50:28.850 回答
0

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

//in pixels
var heightToAdd = 30;    
var svg = element.find("svg")[0];
svg.height.baseVal.value += heightToAdd;
于 2014-07-24T00:17:16.400 回答
0

简单添加潜水,如下所示

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

并为上面的 div 添加样式,例如

#chart{
  height:400px;
}
于 2018-07-09T08:11:46.877 回答