首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在实际表面数据中使用负x或y值?

在实际表面数据中使用负x或y值?
EN

Stack Overflow用户
提问于 2017-11-03 18:51:17
回答 1查看 508关注 0票数 1

实际的表面数据被排列为2d阵列(矩阵),其指数对应于x和y值,其元素表示z值。例如,如果元素等于10,则表示(x,y,z)坐标为(0,0,10)。

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

有三个曲面的这是一个CodePen。表面看起来很好,因为在图中只显示了两个八象素- (+x,+y)象限。如果在图形(CodePen)中显示了所有的八面体,那么它最终看起来是不完整的,因为绘制的曲面不会延伸到其余的3个象限。

表面数据的一般形式是:

代码语言:javascript
复制
{ z       : dataArray,
  type    : 'surface',
  opacity : 0.9 }

有没有办法给表面数据一个xstart或ystart之类的,这样就可以绘制完整的3d曲面了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-04 12:41:38

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

来自文档

x (数据数组) 设置x坐标。 y (数据数组) 设置y坐标。

代码基于示例这里

代码语言:javascript
复制
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'}]);
代码语言:javascript
复制
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myDiv"></div>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47102649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档