Scilab中plot3d2函数flag参数失效问题求助
Scilab plot3d2用flag后显示空框、网格消不掉的解决办法
问题情况
跑这段代码:
clear; close(); close(); close(); X=[1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4]; Y=[1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4]; Z=zeros(4,4); plot3d2(X,Y,Z); //, flag=[2,0,3]);
- 不加
flag的时候,能正常显示带黑色网格的蓝色曲面 - 取消
flag的注释后,仅显示空坐标轴框,曲面完全不显示 - 先执行无
flag的代码、不关闭窗口再执行带flag的代码,曲面会按flag首元素变色,但黑色网格仍无法消除——这正是使用flag的核心需求
问题原因
flag参数传递格式错误:Scilab中plot3d2的flag是位置参数,不能写成flag=[2,0,3]这种关键字赋值格式,错误的参数格式会导致绘图函数无法识别,直接渲染出空框。- 你想用
flag第二个元素0消除网格,但因为参数格式错误,这个设置根本没生效。
解决方案
1. 正确传递flag参数
把最后一行代码改成如下形式,直接将flag向量作为第四个位置参数传入,不要加flag=:
plot3d2(X,Y,Z, [2,0,3]);
修改后直接执行代码,就能显示无黑色网格、对应颜色的曲面。
2. 事后消除网格的备选方案
如果已经绘制了带网格的曲面,也可以在绘图后执行以下代码手动删除网格对象:
delete(gca().children(2))
补充:flag参数三个元素的含义
- 第一个元素(示例中的
2):控制曲面颜色模式,代表使用色卡的第2种颜色 - 第二个元素(示例中的
0):控制网格显示,0=无网格,1=显示网格,2=仅显示网格 - 第三个元素(示例中的
3):控制坐标轴框显示,3=显示完整的坐标轴框
内容的提问来源于stack exchange,提问作者Xirdal
相关产品推荐
相关产品推荐

