在Matlab中围绕原始数据绘制没有调整绘图窗口的附加线

问题描述 投票:0回答:1

我在Matlab中有一个散点图,还有一个水平线形图,该线形图将这些数据的两个子组划分了-全部都在同一图上。我已经使用hold on命令分别绘制了这两个实体。

理想情况下,我希望绘图窗口自动调整为仅散点图数据,并且希望在所有情况下我绘制的水平线都简单地延伸到屏幕之外。有没有简单的方法可以做到这一点?

[当我更改水平线的界限时,图形窗口将移动以容纳这些点,从而使我实际感兴趣的散点图数据的视图倾斜。

示例:

% central line segment
boundary_line = plot(csv_results.data(:,9),csv_results.data(:,10));

% negative extension of line segment off screen
line_negext = plot([-10,csv_results.data(1,9)],[csv_results.data(1,10),csv_results.data(1,10)]);

% positive extension of line segment off screen
line_posext = plot([10,csv_results.data(6,9)],[csv_results.data(6,10),csv_results.data(6,10)]);

% scatterplot data of interest
scatt_data = plot(csv_results.data(:,3),csv_results.data(:,4));
matlab plot axis scatter-plot
1个回答
0
投票

Image showing horizontal line

如果要将轴调整到更多限制部分(减少),则xlim()和[xlim()]完成工作。 ylim()绘制的水平线将保持不变,yline绘制的垂直线将保持不变。

yline

如果您在范围之外的xline之后绘制新数据,则该图将不会自动调整。但是,如果在调用xline之前这样做,则水平线将扩大。请尝试下面的示例。

% MATLAB R2019a
% Sample Data
n = 10;
X1 = 5*rand(n,1);
Y1 = 5*rand(n,1);
X2 = 5 + 5*rand(n,1);
Y2 = 5 + 5*rand(n,1);

figure, hold on
yline(5) 
scatter(X1,Y1,'bo')
scatter(X2,Y2,'rd')
scatter(X1,Y2,'ks')
xlim([0 5])

然后立即执行

xlim()

并且看到水平线已扩展为覆盖新的更长的x轴。

© www.soinside.com 2019 - 2024. All rights reserved.