how to xlimit for 3 different plot in 1 figure?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
arian hoseini
am 31 Jan. 2024
Kommentiert: Star Strider
am 4 Feb. 2024
I need to set xlimit for 3 different plot that there are in 1 figure....i set xlimit but it will set for all
0 Kommentare
Akzeptierte Antwort
Star Strider
am 31 Jan. 2024
Bearbeitet: Star Strider
am 31 Jan. 2024
The plots seem not to have been posted, so I am not certain what you want to do.
Otherwise, you would need to plot each y-vector with a separate x-vector of the same size, although with different start and end values.
8 Kommentare
Weitere Antworten (2)
Benjamin Kraus
am 31 Jan. 2024
In your comment you said "I have figure file not the data."
So, starting with a FIG-file, you first need to find the axes within the FIG file:
f = openfig(filename); % Where filename is the path to the FIG file.
ax = findobj(f,'Type','Axes');
Once you've found the axes, if you need to set them all to use the same limits, you can do that in one command:
xlim(ax, [0 9]) % Where [0 9] are the new limits.
If you need to set the limits on each axes different, it is a bit more complicated, because you need to identify which axes is which. There are several ways to do that. If they have titles, you are in luck, because you can just display the axes handles at the command line to see the titles for each axes. If you just run "ax" (the name of the variable) on the command line, you will get a list of all the axes with their titles.
ax
Once you've done that, you can pick which one you want to have each limits and set them.
xlim(ax(1), [0 9]);
xlim(ax(2), [2 10]);
% etc.
If you don't have titles on the axes, you need to determine which axes handle corresponds to which axes. There are a few options, but they all boil down to looking for (or adding) some distinguishing characteristic.
- Set the Color of each axes, temporarily, to some distinguishing color, so you can see which one you have a handle to, then set it back to the original color (defaults to white).
- Check the existing XLim or YLim (if they are different on different axes).
- Add titles to each axes, then use the above technique.
- Set the Visible property on one axes to 'off', see which one disappears, then set Visible back to 'on'.
- Or just pick one, set the XLim, if you picked the wrong one, you will see which one changed, and can set it to the correct value.
Austin M. Weber
am 31 Jan. 2024
% Example plot
subplot(3,1,1)
plot(rand(10,10))
subplot(3,1,2)
plot(rand(10,10))
subplot(3,1,3)
plot(rand(10,10))
% Set the xlimits to be 0 to 9 for each plot
ax = findobj(gcf,'Type','Axes');
for i = 1:length(ax)
ax(i).XLim = [0,9];
end
1 Kommentar
Benjamin Kraus
am 31 Jan. 2024
You don't need the for loop:
ax = findobj(gcf,'Type','Axes');
xlim(ax, [0 9]);
Siehe auch
Kategorien
Mehr zu Specifying Target for Graphics Output finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!