使用Plotly渲染MATLAB补丁面fig2plotly()

时间:2016-01-11 16:41:42

标签: matlab surface plotly

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

也许演示会有所帮助。采用以下顶点和面来定义一个立方体(从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

这给出了一个很好的立方体,表面上有插值颜色值。

nice cube

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

fig2plotly(gcf)

它返回一个空的多维数据集(plotly link):

empty cube

换句话说,已捕获线信息,但不捕获面。即使我们试图保留MATLAB样式,我们仍然会丢失面部信息:

fig2plotly(gcf, 'strip', false)

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

已在ver中添加了对补丁的改进支持。 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界面来进行颜色修改。