Markers intersect with axis in MATLAB plot

14 ビュー (過去 30 日間)
Ben
Ben 2013 年 7 月 22 日
回答済み: Alexander Weitzel 2022 年 11 月 7 日
Hello
I am plotting some data with markers, e.g.:
loglog(t55,r55,'ko','markerfacecolor','w','markersize',12);
However this marker intersects with my axis and i can see the border outside the actual plotting area defined by xlim and ylim. Altering markersize and boundaries is no option!
How can I adapt my plot that only the part of the marker in plotting are is seen?
Thanks
  1 件のコメント
Daniel Shub
Daniel Shub 2013 年 7 月 23 日
I don't think it can be easily done. See a previous unanswered question of mine where I was trying to figure out the extents of the markers.

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

回答 (4 件)

Ben
Ben 2013 年 7 月 23 日
nobody?
  1 件のコメント
Jan
Jan 2013 年 7 月 23 日
Please do not bump your question by posting a pseudo-answer. When the readers did not find a solution before, bumping without adding new information, is a waste of time.

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


David Sanchez
David Sanchez 2013 年 7 月 23 日
Set the axis according to your data, extending the limits to your need:
x= rand(10,1);
y = rand(10,1);
loglog(x,y,'ko','markerfacecolor','w','markersize',12);
ext=1; % adapt this value to your needs
axis([min(x)-ext max(x)+ext min(y)-ext max(y)+ext])
  1 件のコメント
Jan
Jan 2013 年 7 月 23 日
The OP wrote:
Altering markersize and boundaries is no option!

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


Jan
Jan 2013 年 7 月 23 日
Try to clip the axes' children:
AxesH = loglog(t55,r55,'ko','markerfacecolor','w','markersize',12);
Child = get(AxesH, 'Children');
set(Child, 'Clipping', 'on');
But perhaps this matters the center of the markers only, but not if only parts of the circles are outside the axes' limits.
  3 件のコメント
Jan
Jan 2013 年 7 月 23 日
This means, that there is no trivial solution. Then explain, why you need this and in which format you ant to export the diagrams.
Ben
Ben 2013 年 7 月 23 日
It's about plotting test results in a clean and nice way for a paper. Plots are exported as .eps files. I can edit them with CorelDRAW. That's not the way I intended to to it, but I guess its less work than fiddeling around with MATLAB.

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


Alexander Weitzel
Alexander Weitzel 2022 年 11 月 7 日
Even though this question is already quite old, I can present a simple and viable solution for the problem of overflowing markers.
Assuming you are interested in a clean picture for an article or a dissertation, simply set 'ClippingStyle' to 'rectangle' and print the figure to pdf, parts of markers lying outside of axes are now clipped.
set(gca,'ClippingStyle','rectangle');
print(gcf,'foo.pdf','-dpdf','-r300','-bestfit');

カテゴリ

Help Center および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by