Google柱形图,对数渲染值低于基线

时间:2014-12-12 11:23:48

标签: javascript google-visualization

问题

我使用Google图表javascript API渲染柱形图,其中某些值可能低于1%。当我渲染这些值时,条形图呈现在图形的基线下方。如果这些值>> = 1则会正确呈现它们。根据{{​​3}}:“如果为真,则使垂直轴成为对数刻度注意:所有值必须为正。” - 它们是正数。

这是我正在经历的图像。

Chart in question

问题

如何获得0< 0的所有值? v< 1高于x轴?

我已经取得了一些成功,将所有百分比乘以100(所以从十进制格式得到10000),然后具体地将每个列标签设置为正确的百分比,但是y轴(垂直轴)则具有网格线的值但是没有正确表示数据集。

正如您所看到的,下面呈现的值非常小。请注意,这不仅适用于具有非常大的值且非常小的数据集。我用~100的数据集体验了这一点,并且所有值都<1。 4%。


重现

Google charts API reference on logScale

HTML:

<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['corechart']}]}"></script>
<div id="chart_div" style="width: 900px; height: 500px;"></div>

使用Javascript:

google.setOnLoadCallback(drawChart);
function drawChart() {
    var data = google.visualization.arrayToDataTable([
        ['Year', 'Sales'],
        ['2004',  .23],
        ['2005',  1.23],
        ['2006',  88],
        ['2007',  1.12],
        ['2008',  9.65]
    ]);

    var options = {
        title: 'Company Performance',
        vAxis: {title: 'Year',  titleTextStyle: {color: 'red'}, logScale: true}
    };

    var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

    chart.draw(data, options);
}

1 个答案:

答案 0 :(得分:1)

在另一个问题中找到答案,但解决方法是在选项中使用未记录的功能:scaleType:"mirrorLog"

var options = {
    title: 'Company Performance',
    vAxis: {title: 'Year',  titleTextStyle: {color: 'red'}, logScale: true, scaleType:"mirrorLog"}
};

此处详细信息:ScaleType Google question