【问题标题】:How to get google charts X-Axis points starting at the left most point如何从最左边的点开始获取谷歌图表 X 轴点
【发布时间】:2013-11-01 05:56:46
【问题描述】:

我在我的应用程序中使用 Google API 制作图表。为此,我在同一页面中使用了多个图表。我的问题是给图表填充,如果我给更多点图表区域在该 div 中占据更多空间,如果我只给几个点图表区域占据更少空间并且居中对齐。 第一个图表从左到右正确对齐,第二个带有两个点的图表居中对齐。

如何使所有图表从最左边到最右边的点对齐,就像第一个图表一样?

这是我的代码。

<script>                                                     

             var data1 = google.visualization.arrayToDataTable([
                    ['year', 'Cats'],                       
                    ['2009',   20],
                    ['2010',   23],
                    ['2011',   34],
                    ['2012',   43]
            ]);  
            var data2 = google.visualization.arrayToDataTable([
                    ['year', 'Cats'],                       
                    ['2007',   20],
                    ['2008',   23]

            ]);                 
        var options = {
            pointSize: 5,
            width: 211,
            height: 90,
            backgroundColor: '#ffffff',
            chartArea: {
            left: 10,
            top: 10,
            width: 195,
            height: 56
        },
            legend: {position: 'none'},
            hAxis: {
            baselineColor: '#fff',
            gridlineColor: '#fff',
            textStyle: {italic: false, color: '#ccc', fontSize: 10}
        },
        vAxis: {
            baselineColor: '#fff',
            gridlineColor: '#fff',
            textPosition: 'none'
        },
        tooltip: {
            textStyle: {fontSize: 10}
        },
        series:{
            0:{
                color:'#0066CC'
            }
        }
    };
    var chart1 = new google.visualization.LineChart(document.getElementById('chart1'));
    var chart2 = new google.visualization.LineChart(document.getElementById('chart2'));
    chart1.draw(data1, options);
    chart2.draw(data2, options);
</script> 

【问题讨论】:

  • 您能否发布两个threeDatastwoDatas 的内容示例,一个生成您的第一个图表,一个生成您的第二个图表?
  • 这里有一些相关的选项。您可以指定 chartArea 宽度,即轴内的区域,以及使用顶级宽度选项的图表的整体宽度。还要指定左侧的chartArea 以说明图表区域相对于整个区域的起始位置。
  • 三个数据和四个数据都指向相同的选项,但不同的是要标记的点数。

标签: javascript css charts google-visualization padding


【解决方案1】:

请参阅以下小提琴,了解我如何使两个图表的起点和终点垂直对齐:

http://jsfiddle.net/Fresh/E2yq6/

为了实现这一点,我在“data2”中插入了空数据点,以确保两个图表具有相同数量的点:

var data2 = google.visualization.arrayToDataTable([
    ['year', 'Cats'],                       
    ['2007',   20],
    [null, null],
    [null, null],
    ['2008',   23]
]);

然后我使用第二个图表选项对象中的“interpolateNulls : true”设置来自动计算空数据点的位置。

由于两个图表现在具有相同数量的数据点,最终结果是这样的:

必须插入空数据点远非理想,但此解决方案表明您的问题的答案是可能的。

【讨论】:

  • 如果我使用 var data1 = google.visualization.arrayToDataTable([ ['year', 'Cats'], ['2009', 20], ['2010', 23], [null,空], ['2011', 34] ]);像这样对齐是不同的......请参考这个jsfiddle.net/Hariprasath_V/PE8Ts
  • 您更新的我的小提琴看起来仍然正确,即第一个点和最后一个点对齐。你需要让你的问题更清楚。
  • 我还是不明白。在你的小提琴中,你已经从第一个图表中删除了一个点,当然它看起来会有所不同。正如我之前所说,起点和终点仍然是对齐的,这就是您在问题中要求的。
  • 不,长度有一些不同,请你用alt-tab验证你和我的小提琴,看看2010年和2011年的区别
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 2018-01-29
  • 2021-03-11
  • 1970-01-01
相关资源
最近更新 更多