Matlab 如何在Scilab中展开具有多个点的绘图轴?
我正在使用Scilab 5.5.2。绘制多个点。这是我试图在2D中绘制4个点的脚本:Matlab 如何在Scilab中展开具有多个点的绘图轴?,matlab,plot,point,scilab,Matlab,Plot,Point,Scilab,我正在使用Scilab 5.5.2。绘制多个点。这是我试图在2D中绘制4个点的脚本: u = [1,2;2,1;3,1;4,5;5,1] clf; plot(u,"*r") 我试图在2D中绘制的点是(1,2)、(2,1)、(3,1)和(5,1) 我使用“u”作为向量来存储坐标。此脚本生成此图像: 我想展开x轴和y轴,以得到一个“普通”图。我试着这样做: x=[0:10] u = [1,2;2,1;3,1;4,5;5,1] clf; plot(x,u,"*r") 但是,我收到以下错误消
u = [1,2;2,1;3,1;4,5;5,1]
clf; plot(u,"*r")
我试图在2D中绘制的点是(1,2)、(2,1)、(3,1)和(5,1)
我使用“u”作为向量来存储坐标。此脚本生成此图像:
我想展开x轴和y轴,以得到一个“普通”图。我试着这样做:
x=[0:10]
u = [1,2;2,1;3,1;4,5;5,1]
clf; plot(x,u,"*r")
但是,我收到以下错误消息:
WARNING: Transposing row vector X to get compatible dimensions
!--error 10000
plot: Wrong size for input arguments #2 and #3: Incompatible dimensions.
at line 147 of function checkXYPair called by :
at line 236 of function plot called by :
clf; plot(x,u,"*r")
at line 9 of exec file called by :
exec('poole-exemple.sci')
更重要的是,我的情节有些奇怪。我的脚本生成我不想要的点。如果您查看图像,您将在绘图上看到(4,4)或(1,1)点。我不想这样,也不知道为什么会这样
有人知道如何帮助我吗?Data bounds
您希望更改数据边界,这是执行“获取当前轴”后可访问的数据边界之一。像这样:
plot(u(:,1), u(:, 2), "*r" )
a = gca()
a.data_bounds = [0 0; 10 7]
数据边界属性的格式为[xmin,ymin;xmax,ymax]
根据数据,这里有一个更好的设置方法:
a.data_bounds = [min(u, 'r') - 1; max(u, 'r') + 1]
这将最小绑定设置为最小数据值-1,最大绑定设置为最大值+1
错误的观点
说明了plot
命令的参数是:x值向量和y值向量:分别,而不是在一个矩阵中。你的数据应该是
plot(u(:,1), u(:, 2), "*r" )
不
绘图(u,“*r”)
谢谢@Gerry。然而,一个问题不断发生。当我使用你的命令绘图时,我仍然得到像(3,3)这样的点。u=[1,2;2,1;3,1;4,5;5,1]中没有(3,3)。我怎样才能解决这个问题?这不是我的事。你把clf的旧数据清理掉了吗?是的,问题就是。。。你认为在我的脚本中加入clf是个好主意吗?比如在plot()命令之前的那一行?这是一个好的做法吗?是的,人们通常把它放在剧本的开头,以删除旧情节。