P粉6623617402023-09-03 09:53:17
研究了您的範例,我發現您的 console.log
沒有提供預期的數據,因為 data
是循環的。但是,由於 data.points
具有單一元素,因此您可以透過 data.points[0].x
、data.points[0] 來取得座標。分別為 y
和 data.points[0].z
。
const z = Array.from({ length: 50 }, () => Array.from({ length: 50 }, () => Math.floor(Math.random() * 255))); const plot = document.querySelector("#plot"); const data = [{ type: 'heatmap', z: z }]; const layout = { 'yaxis': { 'scaleanchor': 'x' } }; const config = { modeBarButtons: [ ["zoom2d"], ["zoomIn2d"], ["zoomOut2d"], ["autoScale2d"], ["select2d"], ["drawcircle"] ], displaylogo: false, displayModeBar: true }; Plotly.newPlot('plot', data, layout, config); plot.on("plotly_selected", (data) => { console.log(data); }); plot.on('plotly_click', function(data) { console.log({x: data.points[0].x, y: data.points[0].y, z: data.points[0].z}); });
<script src="https://cdn.plot.ly/plotly-2.16.2.min.js"></script> <div id="plot"></div>