diff --git a/inst/htmlwidgets/plotly.js b/inst/htmlwidgets/plotly.js
index 7deca6f8d1..d1efe9c264 100644
--- a/inst/htmlwidgets/plotly.js
+++ b/inst/htmlwidgets/plotly.js
@@ -263,10 +263,13 @@ HTMLWidgets.widget({
for (var i = 0; i < attrsToAttach.length; i++) {
var attr = trace[attrsToAttach[i]];
if (Array.isArray(attr)) {
- // pointNumber can be an array (e.g., heatmaps)
- // TODO: can pointNumber be 3D?
- obj[attrsToAttach[i]] = typeof pt.pointNumber === "number" ?
- attr[pt.pointNumber] : attr[pt.pointNumber[0]][pt.pointNumber[1]];
+ if (typeof pt.pointNumber === "number") {
+ obj[attrsToAttach[i]] = attr[pt.pointNumber];
+ } else if (Array.isArray(pt.pointNumber)) {
+ obj[attrsToAttach[i]] = attr[pt.pointNumber[0]][pt.pointNumber[1]];
+ } else if (Array.isArray(pt.pointNumbers)) {
+ obj[attrsToAttach[i]] = pt.pointNumbers.map(function(idx) { return attr[idx]; });
+ }
}
}
return obj;