【问题标题】:How to expand the axes of a plot with multiple points in Scilab?如何在 Scilab 中用多个点扩展绘图的轴?
【发布时间】:2017-05-09 18:43:21
【问题描述】:

我正在使用 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")

但是,我收到以下错误消息:

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) 点。我不想要这个,我不知道为什么会这样。

有人知道如何帮助我吗?

【问题讨论】:

    标签: matlab plot point scilab


    【解决方案1】:

    数据边界

    您想要更改数据边界,这是在执行gca 后可访问的many axes properties 之一,“获取当前轴”。像这样:

    plot(u(:,1), u(:, 2), "*r" )
    a = gca()
    a.data_bounds = [0 0; 10 7]
    

    data_bounds 属性的格式为 [xmin, ymin; xmax,ymax]。

    根据数据,这是一种更好的设置方法:

    a.data_bounds = [min(u, 'r') - 1; max(u, 'r') + 1]
    

    这将最小值设置为最小数据值 - 1,最大值设置为最大值 + 1。

    不正确的点

    documentation 说明plot 命令的参数是:x 值向量和y 值向量:分开,不在一个矩阵中。使用您的数据应该是

    plot(u(:,1), u(:, 2), "*r" )
    

    不是plot(u, "*r")

    【讨论】:

    • 谢谢@Gerry。然而,一个问题不断发生。当我使用您的命令进行绘图时,我仍然得到 (3,3) 之类的点。 u = [1,2;2,1;3,1;4,5;5,1] 中没有 (3,3) 。我该如何解决这个问题?
    • 不会发生在我身上。你用 clf 清除旧图了吗?
    • 是的,问题正是……您认为将 clf 放入我的脚本中是个好主意吗?就像在 plot() 命令之前的那行一样?这是一个好习惯吗?
    • 是的,人们通常把它放在脚本的开头,以消除旧情节。
    猜你喜欢
    • 2021-08-21
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多