Create a figure with the same x-axis on top and bottom, and y-axis on the left and right.

조회 수: 9(최근 30일)
How can I create a figure with the same x-axis on top and bottom of my figure. Also, how can I do the same with the same y-axis on the right and left? Also, how can I have labels for the top,bottom, left, and right of the figure.


the cyclist
the cyclist 2023년 2월 4일
편집: the cyclist 2023년 2월 4일
I am not entirely sure I understand everything you want. But, borrowing from this answer, here is code that will label ticks on all sides of a plot. Maybe you can adapt it to what you need.
% Plot some data
% First, store the handle to those axes.
% Next create a second set of axes,
% position This on top of the first and make it transparent.
ax2 = axes('Position', get(ax1, 'Position'),'Color', 'none');
set(ax2, 'XAxisLocation', 'top','YAxisLocation','Right');
% set the same Limits and Ticks on ax2 as on ax1;
set(ax2, 'XLim', get(ax1, 'XLim'),'YLim', get(ax1, 'YLim'));
set(ax2, 'XTick', get(ax1, 'XTick'), 'YTick', get(ax1, 'YTick'));
OppXTickLabels = {'a' 'b' 'c' 'd' 'e' 'f'};
OppYTickLabels = {'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k'};
% Set the x-tick and y-tick labels for the second axes
set(ax2, 'XTickLabel', OppXTickLabels,'YTickLabel',OppYTickLabels);
I think you might also find the hold function useful (if you meant that you want two plots on one set of axes), and also the yyaxis funciton might have been useful.
  댓글 수: 1
Ethan Yen
Ethan Yen 2023년 2월 4일
Thanks for answering my question! I wasn't very clear with my previous question. I have this sample histogram that I have created. I am trying to get the y-axis on the right side to match the y-axis on the left side. Also, I am trying to do the same with the x-axis. I am trying to figure out how I can have the x-axis on the top of the figure be the same as the x-axis at the bottom of the figure.

댓글을 달려면 로그인하십시오.

the cyclist
the cyclist 2023년 2월 5일
Based on your comment on my other solution, here is a different guess as to what you mean. (I'm still not really sure.)
This code uses the tiledlayout function to make three plots side-by-side (in this case some random histograms), and then uses the linkaxes function to synchronize the x- and y-axes.
% Tile 1
ax1 = nexttile;
% Tile 2
ax2 = nexttile;
% Tile 3
ax3 = nexttile;
% Link the axes
linkaxes([ax1, ax2, ax3])


Community Treasure Hunt

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

Start Hunting!

Translated by