Представление нескольких точек данных с одинаковым значением в 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 и сделайте так, чтобы ваш ярлык отражал количество одинаковых очков.
Добавьте метки в ваш массив:
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
,
Затем повторите итерацию вашего массива и, используя матрицу, добавьте соответствующее значение метки точки к исходному массиву.