2016-08-31 14 views
0

我使用jqPlot在散點圖中顯示數據集。數據集中有重複的值。有沒有辦法來表示在圖表上的一個位置有多個數據點的事實?也許通過增加點標記更大?或者,我應該使用另一種圖表嗎?在jqPlot中用等值表示多個數據點

這是我的散佈圖的Javascript代碼。

var qr=[[1,5],[4,5],[6,5],[4,5],[0,5],[4,5],[6,5],[4,5]]; 
var gr_html = $.jqplot('par_sca_div', [qr], { 
       seriesDefaults:{ 
        showLine:false, 
        markerRenderer: $.jqplot.MarkerRenderer, 
        markerOptions: { 
         size: 5 
        } 
       }, 
       series:[{ 
        markerOptions: { 
        style: 'circle', 
        size:5, 
        }, 
       }], 
       axes:{ 
        xaxis:{ 
        label:'Score', 
        }, 
        yaxis:{ 
        renderer:$.jqplot.canvasTextRenderer, 
        label:'Rate', 
        labelRenderer: $.jqplot.CanvasAxisLabelRenderer, 
        labelOptions:{ 
         fontSize: '10pt' 
        }, 
        }, 
       } 
     }); 

回答

1

使用pointLabels plugin並使您的標籤反映相同點的數量。

標籤添加到您的數組:

var qr=[[1,5, null],[4,2, null],[6,5,'2'],[4,5,'3'],[0,5,null],[4,5,'3'],[6,5,'2'],[4,5,'3']];

,使點標籤在你的系列:

series:[{ 
    pointLabels:{ 
    show: true, 
}, 

這裏是一個工作jsfiddle例如與上面。

至於動態添加標籤到您的原始數組的算法,您可以迭代您的原始數組,並創建一個矩陣,將表示點和重複次數。

例如:

[4,5]將被表示爲與pointMatrix[4][5]3的值。

然後再次迭代您的數組,然後使用矩陣將相應的點標籤值添加到您的原始數組中。

+0

感謝您提供這種方法。它對我有用。我在pointMatrix [4] [5]中存儲了有關每個重複點的獨特信息 - 就像pointMatrix [4] [5] [0] =「John」一樣。 – user1072910