2017-08-10 95 views
1

我想創建一個不連續的折線圖。如何使用Google Chart創建不連續的折線圖

enter image description here

要畫我寫了這樣的圖表。

function drawChart() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('date', 'Date'); 
     data.addColumn('number', 'Number'); 

     data.addRows([ 
     [new Date(2017, 1, 20), 460], 
     [new Date(2017, 1, 27), 579],   
     [new Date(2017, 1, 27), null], 
     [new Date(2017, 2, 1), 679], 
     [new Date(2017, 2, 6), 352] 
     ]); 

     var linearOptions = { 
     title: 'Discontinuous Line Chart' 
     }; 

     var linearChart = new google.visualization.LineChart(document.getElementById('linear_div')); 
     linearChart.draw(data, linearOptions); 
    } 

我不得不把一個null值數據,使之分離。

有沒有像這樣的數據來繪製類似上圖的方法?

data.addRows([ 
     [new Date(2017, 1, 20), 460, true], 
     [new Date(2017, 1, 27), 579, false],   
     [new Date(2017, 2, 1), 679, true], 
     [new Date(2017, 2, 6), 352, true] 
     ]); 

這是jsfiddle中的源代碼。

https://jsfiddle.net/7jkmovqs/

回答

0

你可以使用一個'style'column role ...

使用stroke-opacity: 0.0;創建該行

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

這裏,null結果在默認風格...

google.charts.load('current', { 
 
    callback: function() { 
 
    var data = new google.visualization.DataTable(); 
 
    data.addColumn('date', 'Date'); 
 
    data.addColumn('number', 'Number'); 
 
    data.addColumn({role: 'style', type: 'string'}); 
 

 
    data.addRows([ 
 
     [new Date(2017, 1, 20), 460, null], 
 
     [new Date(2017, 1, 27), 579, null], 
 
     [new Date(2017, 2, 1), 679, 'line {stroke-opacity: 0.0;}'], 
 
     [new Date(2017, 2, 6), 352, null] 
 
    ]); 
 

 
    var linearOptions = { 
 
     title: 'Discontinuous Line Chart' 
 
    }; 
 

 
    var linearChart = new google.visualization.LineChart(document.getElementById('linear_div')); 
 
    linearChart.draw(data, linearOptions); 
 
    }, 
 
    packages: ['corechart'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="linear_div"></div>


注:存在對'certainty',需要一個布爾值的列作用...

data.addRows([ 
    [new Date(2017, 1, 20), 460, true], 
    [new Date(2017, 1, 27), 579, false], 
    [new Date(2017, 2, 1), 679, true], 
    [new Date(2017, 2, 6), 352, true] 
]); 

但這會使線虛線 ...