# Plotting a matrix of line plots

8 ビュー (過去 30 日間)
Manas Pratap 2021 年 11 月 12 日
コメント済み: Image Analyst 2021 年 11 月 14 日
Hi!
I have to plot multiple line plots in a matrix. So for example, consider that I have 2 variables x and y and I have 3 data sets of each, i.e x1y1 x2y2 x3y3.
I need to plot this data in a matrix form of 6x6, i.e 36 individual graphs. There's an image of the expected graph below. Any help is much appreciated! ##### 7 件のコメント表示 6 件の古いコメント非表示 6 件の古いコメント
Image Analyst 2021 年 11 月 13 日
@Manas Pratap, did you see my second answer where I turned off those axes?

サインインしてコメントする。

### 回答 (4 件)

KSSV 2021 年 11 月 12 日
x1 = rand ; y1 = rand;
x2 = rand ; y2 = rand ;
x3 = rand ; y3 = rand ;
[X,Y] = meshgrid([x1 y1 x2 y2 x3 y3]) ;
##### 2 件のコメント表示 1 件の古いコメント非表示 1 件の古いコメント
KSSV 2021 年 11 月 12 日
plot(X,Y,'k',X',Y','k')

サインインしてコメントする。

Image Analyst 2021 年 11 月 12 日
numPoints = 10;
v1 = sort(rand(1, numPoints));
v2 = sort(rand(1, numPoints));
v3 = sort(rand(1, numPoints));
v4 = sort(rand(1, numPoints));
v5 = sort(rand(1, numPoints));
v6 = sort(rand(1, numPoints));
% Concatenate
v = {v1;v2;v3;v4;v5;v6}
rows = numel(v)
for k1 = 1 : rows
for k2 = 1 : rows
thisx = v{k1};
thisy = v{k2};
subplot(rows, rows, rows*(k1-1)+k2)
plot(thisx, thisy, 'b-', 'Linewidth', 2)
grid on;
drawnow;
end
end ##### 0 件のコメント表示 -1 件の古いコメント非表示 -1 件の古いコメント

サインインしてコメントする。

Yusuf Suer Erdem 2021 年 11 月 12 日
x1 = rand; y1 = rand;
x2 = rand; y2 = rand;
x3 = rand; y3 = rand;
[X,Y] = meshgrid([x1 y1 x2 y2 x3 y3]);
plot(X,Y)
##### 0 件のコメント表示 -1 件の古いコメント非表示 -1 件の古いコメント

サインインしてコメントする。

Image Analyst 2021 年 11 月 13 日
@Manas Pratap since you said in a comment "The x and y axis should only come up on the sides of the entire image, not individually for each plot", you can turn the tick marks off except in the first column or last row:
numPoints = 10;
v1 = sort(rand(1, numPoints));
v2 = sort(rand(1, numPoints));
v3 = sort(rand(1, numPoints));
v4 = sort(rand(1, numPoints));
v5 = sort(rand(1, numPoints));
v6 = sort(rand(1, numPoints));
% Concatenate
v = {v1;v2;v3;v4;v5;v6}
rows = numel(v)
for k1 = 1 : rows
for k2 = 1 : rows
thisx = v{k1};
thisy = v{k2};
subplot(rows, rows, rows*(k1-1)+k2)
plot(thisx, thisy, 'b-', 'Linewidth', 2)
grid on;
drawnow;
% Turn off y axis except if it's the first column.
if k2 > 1
yticks([]);
end
% Turn off x axis except if it's the last row.
if k1 < rows
xticks([]);
end
end
end ##### 4 件のコメント表示 3 件の古いコメント非表示 3 件の古いコメント
Image Analyst 2021 年 11 月 14 日
Scatter is not a script. It's a built in function. You did not name your script "scatter.m" did you? You can't (or shouldn't) name your script after built-in functions like scatter or else you cannot run those built-in functions anymore.

サインインしてコメントする。

### カテゴリ

Find more on 2-D and 3-D Plots in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!