使用Octave绘制垂直线的最佳方法是什么?
答案 0 :(得分:4)
所以,我有两种方法。一,我找到了,另一个是我做的。
方法1:来自here。
%% Set x value where verticle line should intersect the x-axis.
x = 0;
%% plot a line between two points using plot([x1,x2],[y1,y2])
plot([x,x],[-10,10]);
方法2:略有不同的方法,完全相同的结果
%% Setup a vector of x values
x = linspace(0,0,100);
%% Setup a vector of y values
y = linspace(0,10,100);
%% Plot the paired points in a line
plot(x,y);
我认为方法2可能会在绘图过程之前将更多信息写入内存并且它的行更长,所以在我看来,方法1应该是更好的选择。如果你更喜欢方法2,请确保你的x和y向量是相同的维度,否则你最终会得到一堆你想要的点。
答案 1 :(得分:0)
不幸的是, Octave 文档用于做显而易见的事情,可笑得很糟糕,没有可用的示例。在图的顶部绘制一条简单的线是一个。
如前所述,以八度为单位绘制 直线行是非常愚蠢的。这是浪费内存和处理过程。而是使用 line()
函数在绘图上方绘制。
line()函数需要2个非标准的 x值和 y值向量,而不是标准的点A
和点B
的point-slope 参数,通常由(x1,y1)
和(x2,y2)
表示。相反,您需要这样写: X=(x1,x2)
和 Y=(y1,y2)
。从而使每个活着的灵魂感到困惑!
以下是使用八度音语言执行此操作的正确方法的示例:
pkg load statistics % Need to load the statistics package
x = randn (1,1000); % Normal Distribution of random numbers
clf; histfit(x) % Make a histogram plot of x and fit the data
ylim ([-20,100]) % Change the plot limits (to lift graph up)
% Draw the (vertical) line between (0,-10) and (0,90)
line ("xdata",[0,0], "ydata",[-10,90], "linewidth", 3)
结果:
答案 2 :(得分:0)