【问题标题】:Rendering MATLAB patch faces with Plotly fig2plotly()使用 Plotly fig2plotly() 渲染 MATLAB 补丁面
【发布时间】:2016-04-16 01:38:25
【问题描述】:

问题:当尝试在 MATLAB 中使用fig2plotly 导出使用patch 命令渲染的多边形时,最终输出缺少指定的面颜色。

也许演示会有所帮助。取以下顶点和面来定义一个立方体(摘自 MATLAB 文档):

vert = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
fac = [1 2 6 5;2 3 7 6;3 4 8 7;4 1 5 8;1 2 3 4;5 6 7 8];

然后用 patch 命令渲染它,给面添加一些颜色信息:

patch('Vertices',vert,'Faces', fac, 'FaceVertexCData',hsv(8),'FaceColor','interp')

并以 3D 形式查看:

view(3)
axis vis3d

这给出了一个漂亮的立方体,在表面上带有插值颜色值。

现在,如果我们尝试使用 fig2plotly 命令将其导出到 Plotly:

fig2plotly(gcf)

它返回一个空立方体 (plotly link):

换句话说,已经捕获了行信息,但没有捕获人脸。即使我们尝试保留 MATLAB 样式,我们仍然会丢失人脸信息:

fig2plotly(gcf, 'strip', false)

有什么建议吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow,感谢您提出的非常好的问题:) 我只想指出,我总是对所谓的 plotly 完整文档的无用性感到惊讶。非常闪亮,完全没用。 (也许问题出在我身上。)从我能找到的少量信息来看,fig2plotly 应该主要靠自己完成它的工作。因此,如果您在这里没有得到其他人的答复,也许您应该提交错误报告。
  • @AndrasDeak 谢谢!我已经阅读 StackOverflow 有一段时间了,所以只是想坚持社区标准。事实上,我看不到任何关于 MATLAB 表面/补丁的文档,所以我可能不得不直接使用它们。同时,如果有人知道答案,我很想听听!

标签: matlab surface plotly


【解决方案1】:

对补丁的改进支持已添加到版本。包装器的 2.2.9 (https://github.com/plotly/MATLAB-Online)。

您可以通过在 plotlyfig.m 文件中将 TriangulatePatch 默认设置为 true 来切换这种改进的补丁处理。 (https://github.com/plotly/MATLAB-Online/blob/master/plotly/plotlyfig.m#L61)

尚不支持颜色渐变,但补丁本身现在应该呈现。可以通过手动修改 plotlyfig 对象的属性或使用 Web 界面来进行颜色修改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 2015-12-10
    相关资源
    最近更新 更多