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;