Dimple js修改散点形状
Dimple js modify scatter shape
有没有一种简单的方法可以使用 dimple.js 修改散点图中圆圈的形状?
我想要这个 scatter plot 中每种颜色的不同形状。例如,蓝色为矩形,红色为三角形,黄色为方括号...
我该怎么做?
您可以通过编写自定义绘图函数来完成。
如果您不关心某些功能(例如工具提示、动画、重复绘制等),您可以删除它们,这样可以将代码减少到非常少的程度。这是绘制星星的最基本的绘图仪。
var myCustomPlotter = {
stacked: false,
grouped: false,
supportedAxes: ["x", "y"],
draw: function (chart, series, duration) {
chart._group
.selectAll(".my-series")
.data(series._positionData)
.enter()
.append("path")
// Path Generated at http://www.smiffysplace.com/stars.html
.attr("d", "M 0 10 L 11.756 16.180 L 9.511 3.090 L 19.021 -6.180 L 5.878 -8.090 L 0 -20 L -5.878 -8.090 L -19.021 -6.180 L -9.511 3.090 L -11.756 16.180 L 0 10")
.attr("transform", function (d) {
return "translate(" +
dimple._helpers.cx(d, chart, series) + "," +
dimple._helpers.cy(d, chart, series) + ")";
})
.style("fill", "yellow")
.style("stroke", "orange");
}
};
http://jsbin.com/mafegu/6/edit?js,output
一旦开始添加工具提示等,它会变得更加复杂,但您可以使用原始气泡方法作为基础并从那里开始工作:
https://github.com/PMSI-AlignAlytics/dimple/blob/master/src/objects/plot/bubble.js
有没有一种简单的方法可以使用 dimple.js 修改散点图中圆圈的形状?
我想要这个 scatter plot 中每种颜色的不同形状。例如,蓝色为矩形,红色为三角形,黄色为方括号...
我该怎么做?
您可以通过编写自定义绘图函数来完成。
如果您不关心某些功能(例如工具提示、动画、重复绘制等),您可以删除它们,这样可以将代码减少到非常少的程度。这是绘制星星的最基本的绘图仪。
var myCustomPlotter = {
stacked: false,
grouped: false,
supportedAxes: ["x", "y"],
draw: function (chart, series, duration) {
chart._group
.selectAll(".my-series")
.data(series._positionData)
.enter()
.append("path")
// Path Generated at http://www.smiffysplace.com/stars.html
.attr("d", "M 0 10 L 11.756 16.180 L 9.511 3.090 L 19.021 -6.180 L 5.878 -8.090 L 0 -20 L -5.878 -8.090 L -19.021 -6.180 L -9.511 3.090 L -11.756 16.180 L 0 10")
.attr("transform", function (d) {
return "translate(" +
dimple._helpers.cx(d, chart, series) + "," +
dimple._helpers.cy(d, chart, series) + ")";
})
.style("fill", "yellow")
.style("stroke", "orange");
}
};
http://jsbin.com/mafegu/6/edit?js,output
一旦开始添加工具提示等,它会变得更加复杂,但您可以使用原始气泡方法作为基础并从那里开始工作:
https://github.com/PMSI-AlignAlytics/dimple/blob/master/src/objects/plot/bubble.js