javascript - 在绘图表面数据中使用负 x 或 y 值?

标签 javascript plot plotly

绘图表面数据排列为二维数组(矩阵),其索引对应于 x 和 y 值,其元素表示 z 值。例如。如果元素[0][0]等于10,则表示(0,0,10)的(x,y,z)坐标。

问题:由于数组索引从零开始,因此似乎不可能绘制具有负 x 或 y 值的曲面。

Here is a CodePen绘制了三个曲面。表面看起来很好,因为图中只显示了两个八分圆 - (+x,+y) 象限。如果所有八分圆都显示在图表中 ( CodePen ),那么它最终看起来不完整,因为绘制的曲面不会延伸到剩余的 3 个象限。

表面数据的一般形式为:

{ z       : dataArray,
  type    : 'surface',
  opacity : 0.9 }

有没有办法给表面数据一个 xstart 或 ystart 等,以便可以绘制完整的 3d 表面?

最佳答案

您可以添加自己的 xy 坐标,如果您不提供,Plotly 只是假设它们。

来自documentation :

x (data array)
Sets the x coordinates.

y (data array)
Sets the y coordinates.

代码基于示例 here .

z = [[8.83,8.89,8.81,8.87,8.9,8.87],
     [8.89,8.94,8.85,8.94,8.96,8.92],
     [8.84,8.9,8.82,8.92,8.93,8.91],
     [8.79,8.85,8.79,8.9,8.94,8.92],
     [8.79,8.88,8.81,8.9,8.95,8.92],
     [8.8,8.82,8.78,8.91,8.94,8.92],
     [8.75,8.78,8.77,8.91,8.95,8.92],
     [8.8,8.8,8.77,8.91,8.95,8.94],
     [8.74,8.81,8.76,8.93,8.98,8.99],
     [8.89,8.99,8.92,9.1,9.13,9.11],
     [8.97,8.97,8.91,9.09,9.11,9.11],
     [9.04,9.08,9.05,9.25,9.28,9.27],
     [9,9.01,9,9.2,9.23,9.2],
     [8.99,8.99,8.98,9.18,9.2,9.19],
     [8.93,8.97,8.97,9.18,9.2,9.18]];

var x = [];
var y = [];
for (var i = 0; i < z.length; i += 1) {
  x[i] = [];
  y[i] = [];
  for (var j = 0; j < z[i].length; j += 1) {
    x[i].push(j + i - 10);
    y[i].push(j - 3);
  }
}

Plotly.newPlot('myDiv', [{z: z, 
                      	  x: x, 
                          y: y, 
                          type: 'surface'}]);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myDiv"></div>

关于javascript - 在绘图表面数据中使用负 x 或 y 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102649/

相关文章:

python - 用python画地形?

python - 在 Python 3.3.2 上使用 Pandas 0.12.0 和 Matplotlib 1.3.1 绘制包含 NaN 的 DataFrame 时出错

python - 使用绘图对象创建显示目录结构的树形图

javascript - 基本的node.js "function"与 "=>"表示法

javascript - 简单的 Ajax/Codeigniter 请求

matlab - 使用 ezplot 在 MATLAB 中的同一张图上绘制两个函数

python - 如何在 Flask 上动态更新我的 Python 图表?

r - 包构建/检查删除 htmlwidget 派生文件

javascript - Angularjs 使用的 Rails API

javascript - React - 期望进行赋值或函数调用,但却看到表达式无法编译