Ответы на вопросы нет, да и да:
- Нет, вам нужно DIV за диаграмму.
- Да, вы могли бы просто позиционировать другой div/pie поверх каждого фрагмента.
- Да, вы можете легко регулировать радиус каждой круговой диаграммы.
Вот пример воедино элемента 1 и 2:
разметки:
<div id="master" style="width: 500px; height: 500px;"></div>
<div id="slice1" style="width: 100px; height: 100px; background-color: transparent"></div>
<div id="slice2" style="width: 100px; height: 100px; background-color: transparent"></div>
<div id="slice3" style="width: 100px; height: 100px; background-color: transparent"></div>
<div id="slice4" style="width: 100px; height: 100px; background-color: transparent"></div>
JS:
var data = [
{ label: "Series1", data: 90},
{ label: "Series2", data: 50},
{ label: "Series3", data: 70},
{ label: "Series4", data: 70}
];
function otherData(){
var rV = [];
for (var i = 0; i < 4; i++){
rV.push({label:"Series" + (i+1), data: Math.random() * 10});
}
return rV;
}
var chartCenter = [$('#master').width()/2, $('#master').height()/2];
var masterRadius = 200;
var sliceRadius = 40;
var chart1 = $.plot($('#master'), data, {
series: {
pie: {
show: true,
radius: masterRadius
},
},
legend: {
show: false
}
});
var masterData = chart1.getData();
for (var i = 0; i < masterData.length; i++){
var dataPoint = masterData[i];
var angle = dataPoint.startAngle + dataPoint.angle/2;
var sliceCenter = [Math.cos(angle) * masterRadius/2,
Math.sin(angle) * masterRadius/2];
var sliceDiv = $('#slice' + (i + 1));
sliceDiv.css({"position": "absolute", "left": sliceCenter[0] + chartCenter[0] - sliceRadius, "top": sliceCenter[1] + chartCenter[1] - sliceRadius});
$.plot(sliceDiv, otherData(), {
series: {
pie: {
show: true,
radius: sliceRadius,
label: {
show: false
}
}
},
legend: {
show: false
}
});
}
производит (пример here):
Спасибо. Я думаю, вы неправильно поняли одно, о чем я просил, но ваш ответ был интереснее, чем я ожидал! Я не хотел показывать один большой пирог, а затем помещать каждый мелкий пирог в кусочек каждого пирога. Я имел в виду, используя вышеприведенный пример, что только четыре меньших пирога покажут, и если бы один меньший пирог имел общий объем продаж 1000, тогда весь пирог был бы больше, чем другой пирог с общим объемом продаж 750. Я предполагаю, что общий размер каждого пирога можно отрегулировать, что вы показали своим большим пирогом. –