2017-02-18 162 views
2

我想反轉柱形圖的y軸,使較低的數字顯示得更高。Google Charts:柱形圖反轉y軸

我已經試過vAxis:{方向:-1}

enter image description here

當我做這列出來的圖表的頂部,我想要的列來自的底部圖表,如果他們有一個較低的數字,他們會更高。

我讀了一些關於否定數字和使用數字格式來顯示它們是積極的但我不知道如何做到這一點。

我以前接受的答案得到我想要的東西這是 -

enter image description here

編輯: 我通過查找我的最大的一組數據,最大的變種創建了自己的規模。最大的是我的數據集的最大價值,目標是讓它在圖表的底部開始更大一點,以便該列在圖表上有一個高度,而不是0的高度。相當硬編碼,但爲我的數據集工作。

if (biggest <= 15) 
{ 
    biggest = 20; 
} else if (biggest <= 45) 
{ 
    biggest = 50; 
} else if (biggest <= 70) 
{ 
    biggest = 75; 
} else 
{ 
    if (Math.ceil(biggest/100) * 100 === biggest) 
    { 
     // Round up to the next nearest 100 
     biggest = Math.ceil(biggest/100) * 100 + 100; 
    } else 
    { 
     // Round up to the nearest 100 
     biggest = Math.ceil(biggest/100) * 100; 
    } 
} 

然後,我把它分成5個相同的部分。

var temp1 = (biggest/5); 
var temp2 = (biggest/5) * 2; 
var temp3 = (biggest/5) * 3; 
var temp4 = (biggest/5) * 4; 

然後將其添加到圖表,如:

var options = { 
    title: 'Rank Comparison', 
    bar: { groupWidth: '75%' }, 
    vAxis: { 
     ticks: [ 
     // use object notation to provide y-axis labels 
     {v: 0, f: biggest.toString()}, 
     {v: temp1, f: temp4.toString()}, 
     {v: temp2, f: temp3.toString()}, 
     {v: temp3, f: temp2.toString()}, 
     {v: temp4, f: temp1.toString()}, 
     {v: biggest, f: '0'} 
     ] 
    }, 
    chartArea: { 
     left: '3.5%', 
     width: '79%' 
    }, 
    seriesType: 'bars', 
    backgroundColor: 'transparent', 
    legend: 
    { 
     alignment: 'center' 
    } 
} 

回答

2

看到下面的工作片段...

google.charts.load('current', { 
 
    callback: drawChart, 
 
    packages: ['corechart'] 
 
}); 
 

 
function drawChart() { 
 
    var data = google.visualization.arrayToDataTable([ 
 
    ['x', 'y'], 
 
    // use object notation to provide formatted number for tooltip 
 
    ['Test', {v: 1, f: '-1'}], 
 
    ['Test', {v: 2, f: '-2'}], 
 
    ['Test', {v: 3, f: '-3'}] 
 
    ]); 
 

 
    var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
 
    chart.draw(data, { 
 
    vAxis: { 
 
     ticks: [ 
 
     // use object notation to provide y-axis labels 
 
     {v: 0, f: '0'}, 
 
     {v: 1, f: '-1'}, 
 
     {v: 2, f: '-2'}, 
 
     {v: 3, f: '-3'}, 
 
     {v: 4, f: '-4'} 
 
     ] 
 
    } 
 
    }); 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div"></div>

+0

那不是很什麼即時通訊之後,對不起,如果我沒有解釋得很清楚,我想讓y軸從底部的較高數字開始,並且hav e 0在頂部,就像我已附加的圖片,但我不希望酒吧像圖片中顛倒。所以較高的酒吧應該有一個值接近0 –

+0

我能夠用你的方式得到我想要的!它有點棘手,因爲我不知道這些值是什麼值,因爲圖表是動態繪製的,但我將不得不想出一個辦法來做到這一點!謝謝,我會添加圖片到我的問題,因爲我不知道我可以在評論 –

+0

@AaronVance你可以發佈你的最終解決方案嗎? –