correct axis range (matlab)

陌路散爱 提交于 2020-03-26 02:43:26

问题


how can i solve the problem of these two images automatically (with a code adaptable to different data) without having to fix the axes range for each plot (i have millions of these plots)?

problem: axis range should be smaller

problem: axis range should be bigger

also, i need axis to be correctly labeled from the first value to last (see example in comment please)

any help is highly appreciated. thank you so so much.


回答1:


In order to have a complete bounding box use box on.

In order to avoid large empty space around a plot (or no space at all) use xlim and ylim. Try the following:

figure
plot(x,y)
box on

x1 = min(x);
x2 = max(x);
dx = x2-x1;
y1 = min(y);
y2 = max(y);
dy = y2-y1;

fc = 10/100  % this is a factor of 10% of empty space around plot


xlim([x1-dx*fc x2+dx*fc])
ylim([y1-dy*fc y2+dy*fc])

If you want to have a tick value appear at the start and the end of the axis, you could either force it by set(gca,'Xtick',[values]), where values are those ticks you want to show; or by floor and ceil of the xlim and ylim min and max limits above.

Hope this is what you need




回答2:


To set axis limit and visualize chart better you can use axis command like axis([xmin xmax ymin ymax]) where parameters set chart borders. It should help you. More information is here: http://www.mathworks.se/help/matlab/ref/axis.html



来源:https://stackoverflow.com/questions/13408648/correct-axis-range-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!