How to make only x-axis invisible (y-axis stays visible)?

1,211 ビュー (過去 30 日間)
Csaba 2013 年 5 月 23 日
回答済み: Steven Lord 2023 年 11 月 27 日 14:19
I have two axes (top, bottom) in a GUI. I do not want the x-axis of the top ghraph to be present (because it is the same as the bottom x-axis). I could not find how to handle separately the x and y axis visibility.

回答 (11 件)

Muhammad Shah
Muhammad Shah 2018 年 12 月 17 日
This Question is posted in 2013, but still last week got more than a thousand views, and I also needed this info, and I got very helpful information in this post, but surprizingly later I got an other solution in Matlab documentation and that was not yet here, and it is probably the smalest code, and I tested it and it worked nice, so I decided to addd it, here it is:
axis off ;
And thats it your axes are gone.
  2 件のコメント
Luca Nagel
Luca Nagel 2021 年 7 月 8 日
Dear Muhammad, thank you this was really helpful!


Johann Riemensberger
Johann Riemensberger 2016 年 10 月 27 日
Hi, axes('Color','none','XColor','none');
works for me Bests Johann
  2 件のコメント
Csaba 2018 年 12 月 25 日
It does not work on the Matlab 2013. So I cannot accept this answer.


Wayne King
Wayne King 2013 年 5 月 23 日
without seeing your code, a simple way is just to set the 'xtick' property to []
  3 件のコメント
Csaba 2013 年 5 月 24 日
Sorry, no. It makes the axis white but I have a picture behind the graph. So white axis (and actually any colors) are visible in my case. I do not want the x-axis at all.


Jorge Mariscal Harana
Jorge Mariscal Harana 2017 年 7 月 5 日
編集済み: Walter Roberson 2023 年 5 月 27 日
ax1.YAxis.Visible = 'off'; % remove y-axis
ax1.XAxis.Visible = 'off'; % remove x-axis
Hope that helps, J
  3 件のコメント
Florens Helfferich
Florens Helfferich 2023 年 11 月 27 日 10:24
@Ankit Labh ax1.Box = false;
This removes both the top and right side axes, but not the left and bottom axes.


Kyle Henderson
Kyle Henderson 2017 年 12 月 3 日

Rini Varghese
Rini Varghese 2018 年 10 月 9 日
編集済み: Rini Varghese 2022 年 4 月 14 日
Try the following:
h = gca;
h.XAxis.Visible = 'off';
  2 件のコメント
Abdul Basith Ashraf
Abdul Basith Ashraf 2019 年 11 月 11 日
This is better
If I set
the grid will also vanish.
But with your code, the grid stays . Thanks


John Barber
John Barber 2013 年 5 月 24 日
This solution might be overkill, but you can get that effect with my File Exchange program 'oaxes', available here: The following will show only a y axis at the left edge of the plot:
oa = oaxes;
oa.XAxisLine = 'off';
oa.XLabel = '';
oa.YLabel = '';
oa.Arrow = 'off';
oa.Origin = [-Inf -Inf 0];
% If you want the normal y label to be visible:
ylabel('my y axis...')
This should get you close to what you are looking for. The oaxes documentation will give you more information about the properties used in the example above, including an explanation of the difference between the oaxes 'YLabel' property which is set to empty above, and the parent axes' 'YLabel' text object. The main difference in appearance I am getting is that the oaxes ticks are bidirectional (they extend out on both sides from the axes line), while a normal axes has ticks that only extend to one side. Currently, there is no way to change this in oaxes, but I might add it in a future release.
  1 件のコメント
Csaba 2013 年 5 月 27 日
Thanks, I will try.


José-Luis 2013 年 5 月 24 日
編集済み: José-Luis 2013 年 5 月 24 日
h = axes;
pos = get(h,'Position');
new_h = axes('Position',pos);
linkaxes([h new_h],'y');
pos(3) = eps; %Edited here
  4 件のコメント
Jan 2017 年 11 月 24 日
[EDITED, moved from flag] andreas jensen wrote:
Overly complicated and doesn't work


Chintan 2014 年 5 月 17 日
Turn Box off, it usually works.

Martin 2016 年 3 月 24 日
I solved something similar that way:

Steven Lord
Steven Lord 2023 年 11 月 27 日 14:19
This wasn't an option when the question was originally asked, but now you can change the Visible property of the appropriate ruler object that is part of the axes. Compare the axes without the ruler being changed:
ax = axes;
plot(ax, 1:10);
with one that does have the ruler turned off.
ax2 = axes;
plot(ax2, 1:10);
% Get the ruler for the X axis
x = ax2.XAxis;
% Make it invisible
x.Visible = 'off';


Help Center および File ExchangeAnnotations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by