Ändern der Größe der Blase in der Scatter-Plot für c3.js
Habe ich eine scatter-plot-charge, wo ich will zu ändern, die Größe der Punkte, dass Sie Aussehen wie bubble. Kann jemand mir zeigen, wie das ändern der Größe der Blase?
Hier ist mein code:
var chart = c3.generate({
data: {
xs: {
IBM: 'ibm_x',
Microsoft: 'microsoft_x',
},
columns: [
["ibm_x", 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3.0, 3.0, 4.0, 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3.0, 3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.6, 3.0, 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3.0, 3.8, 3.2, 3.7, 3.3],
["microsoft_x", 3.2, 3.2, 3.1, 2.3, 2.8, 2.8, 3.3, 2.4, 2.9, 2.7, 2.0, 3.0, 2.2, 2.9, 2.9, 3.1, 3.0, 2.7, 2.2, 2.5, 3.2, 2.8, 2.5, 2.8, 2.9, 3.0, 2.8, 3.0, 2.9, 2.6, 2.4, 2.4, 2.7, 2.7, 3.0, 3.4, 3.1, 2.3, 3.0, 2.5, 2.6, 3.0, 2.6, 2.3, 2.7, 3.0, 2.9, 2.9, 2.5, 2.8],
["IBM", 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2],
["Microsoft", 1.4, 1.5, 1.5, 1.3, 1.5, 1.3, 1.6, 1.0, 1.3, 1.4, 1.0, 1.5, 1.0, 1.4, 1.3, 1.4, 1.5, 1.0, 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7, 1.5, 1.0, 1.1, 1.0, 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2, 1.4, 1.2, 1.0, 1.3, 1.2, 1.3, 1.3, 1.1, 1.3],
],
type: 'scatter'
},
color: {
pattern: ['#4C7A9F', '#E25459']
},
});
setTimeout(function () {
chart.load({
columns: [
["IBM", 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2],
]
});
}, 1000);
setTimeout(function () {
chart.load({
columns: [
["IBM", 10.2, 10.2, 10.2, 10.2, 10.2, 11.4, 10.3, 10.2, 10.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2],
]
});
}, 2000);
setTimeout(function () {
chart.load({
columns: [
["Microsoft", 10.2, 10.2, 10.2, 10.2, 10.2, 11.4, 10.3, 10.2, 10.2, 10.1, 10.2, 10.2, 10.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2],
]
});
}, 3000);
Dies ist mein FIDDLE. Ich bin im Grunde versucht, um mein Diagramm zu schauen, wie diese
- Ein bubble-chart benötigt drei Werte für jedes element: x, y, und Wert. Die Dritte ist die, die man verwendet, um die relative Größe (radius, Fläche...). Ich sehe nicht, dass eine Art von Struktur in Ihre Daten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit c3, wenn Sie nur wollen, um erhöhen Sie die Größe in Punkt gleichmäßig, nur fügen Sie eine Eigenschaft für Punkte, und geben Sie den radius
Fiddle - http://jsfiddle.net/3jfe75r8/
Wenn Sie möchten, stellen Sie den Punkt Größe , hängt von den Abmessungen können Sie ersetzen die hardcoded 15, die durch eine Funktion. Zum Beispiel
Bemerken, dass ich, multipliziert mit einem Skalierungsfaktor von 5, so dass die Punkte groß genug wäre. Wenn Sie Ihre Daten-Werte sind groß genug, braucht man eigentlich nicht dieser Skalierungsfaktor.
Wenn Sie möchten, stellen Sie den Punkt Größe abhängig von den Dimensionen tun Sie dies
Oder was auch immer Ausdruck, der Ihre Fantasie anregt.
Wenn Sie wollen Skala die Größe von einer der dimension, definieren Sie Ihre eigenen scaling-Funktion und verwenden. Zum Beispiel
dann
Würde die Skala der radius Linear von 5 auf 50 für die Werte von 0.01 bis 5.
Könnte man auch ersetzen 0,01 und 5 von der aktuellen min-und max-Werte aus dem dataset (Verwendung d3.min(< < array > >) und d3.max(< < array > >)). Wenn Sie die Daten multidimensional ist, müssen Sie glätten Sie es in ein array.
Wenn Sie Ihre Daten dynamisch ändert, entweder umdefinieren-scaling-Funktion, oder es hängt von den Daten ab (vs. die Werte aus den Daten berechnet)
return (d.value - smallest) / (largest - smallest) * x;
... wobei x bestimmt, wie groß Sie bekommen können.chart.internal.unexpandArc
nicht alles tun für die ids A und B wie jsfiddle.net/uamd1404d3 Größe für Sie arbeiten würde. Zum Beispiel:
Dies kann auch eine gute Referenz: Link oder besuchen Sie diese Gist. Die Datei index_previous.html ein Beispiel ähnlich zu dem, was Sie suchen, laden Sie einfach das Beispiel, die Daten und entfernen Sie die "//" aus dieser Zeile: