簡體   English   中英

使用 Plotly 熱圖自定義 x 軸和 y 軸范圍

[英]Custom x-axis and y-axis range with Plotly heatmap

假設我們有一個 2x4 矩陣顯示在heatmap中(實際上它可以是 500x1000):

 var data = [{z: [[1, 2, 3, 4], [5, 6, 7, 8]], type: 'heatmap'}]; Plotly.newPlot('myDiv', data, {xaxis: { ticksuffix: " mm" }}, {});
 <script src="https://cdn.plot.ly/plotly-2.16.2.min.js"></script> <div id="myDiv"></div>

如何將x軸更改為自定義范圍,並保持plot全寬?

比如0 mm to 321 mm 321mm(單位是毫米),而不是-0.5mm to 3.5mm

PS:由於數據可能很大(500x1000 像素),我想避免在data本身中插入x, y值,因為它會使這個 object 大 3 倍(並且渲染速度足夠慢)。

您可以使用 function 縮放 x 軸標簽。

如果您想查看它正在計算的值,請取消注釋console.log()語句。

 var xValues = [10, 20, 30, 40]; var zValues = [[1, 2, 3, 4], [5, 6, 7, 8]]; var max = 321; var multiplier = max / (zValues[0].length - 1); var data = [{ z: zValues, type: 'heatmap', x: zValues[0].map(function(el, idx) { /* console.log(idx, idx * multiplier); */ return idx * multiplier; }), }]; Plotly.newPlot('myDiv', data, {xaxis: { ticksuffix: " mm" }}, {});
 <script src="https://cdn.plot.ly/plotly-2.16.2.min.js"></script> <div id="myDiv"></div>

您可以使用 x 軸 object 的范圍屬性。此屬性采用兩個值的數組,表示 x 軸的最小值和最大值。

 var data = [{z: [[1, 2, 3, 4], [5, 6, 7, 8]], type: 'heatmap'}]; var layout = { xaxis: { range: [0, 321], ticksuffix: " mm" } }; Plotly.newPlot('myDiv', data, layout);
 <script src="https://cdn.plot.ly/plotly-2.16.2.min.js"></script> <div id="myDiv"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM