谷歌图表:时间轴:带有比例尺位置的动态高度

use*_*332 4 charts visualization data-visualization google-visualization

感谢您查看和回答.我正在使用Google Charts(TimeLine)来显示数据库中的信息.但Google图表参考仅提供图表的设置修复高度.而我想根据从数据中获得的行数来更改图表高度.所以我制作了代码:

    var graph = $('#chart_timeLine').children()[0].children[0].children[1];
    $(graph).css('height',graph.scrollHeight);
    $(graph).css('overflow-y','auto');
Run Code Online (Sandbox Code Playgroud)

现在图表没有垂直滚动条,我很满意.但我发现显示时间线图表比例尺的比例尺(实际上它隐藏在图表下方,而不是显示在图表的底部).

然后我将scalebar的位置更改为绝对位置,并将其设置为图表的底部.然后它是丑陋的,因为它的高度为200px,而比例位于200px的底部,在我的图表和比例之间留下了一个巨大的空白.

有没有修复?谢谢.

asg*_*ant 9

而不是弄乱图表的内部工作,而是根据DataTable中的数据行数设置高度:

// set a padding value to cover the height of title and axis values
var paddingHeight = 40;
// set the height to be covered by the rows
var rowHeight = data.getNumberOfRows() * 15;
// set the total chart height
var chartHeight = rowHeight + paddingHeight;
Run Code Online (Sandbox Code Playgroud)

然后在时间轴的选项中,设置高度:

height: chartHeight
Run Code Online (Sandbox Code Playgroud)

  • 对于并发事件,这不能很好地工作,因为表中的行数相同,但事件是堆叠显示的. (3认同)

Scu*_*eve 5

我尝试了答案,但它对我不起作用。我让它为我工作的方式是这样的:

    // Calculate height
    var rowHeight = 41;
    var chartHeight = dataTable.getNumberOfRows() * rowHeight + 50;

    var options = {
        height: chartHeight
    }
Run Code Online (Sandbox Code Playgroud)

getNumberOfRows() 的 + 1 用于 X 轴文本。

  • @Khrys,这是因为 `dataTable.getNumberOfRows()` 返回数据项的数量,而不是图表中的行数。图表中的行数应手动计算。 (2认同)