How do I use matlab to plot a graph where the x,y axes do not intersect?
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
cui,xingxing
el 27 de Abr. de 2021
Comentada: Adam Danz
el 30 de Abr. de 2021
How can I use matlab to plot a graph where the x,y axes do not intersect? Similar to the image below, note that the bottom left corner does not cross.The x- and y-axes are shown with specified ranges
5 comentarios
Respuesta aceptada
Jonas
el 28 de Abr. de 2021
not elegant, but possible if i'm not mistaken:
fig=figure;
% amount of shift of x and y axis in normalized coordinates
dx=0.05;
dy=0.05;
plotAx=axes('Position',[0.1 0.1 0.85 0.85],'Color','none');
% create shifted y axis
yax=axes('Position',plotAx.Position-[dx 0 -dx 0],'Color','none','XColor','none');
yax.XGrid='off';
% create shifted x axis
xax=axes('Position',plotAx.Position-[0 dy 0 -dy],'Color','none','YColor','none');
xax.YGrid='off';
axes(plotAx); % set curr axis
% plot sample data
x=-2:0.1:2;
y=(x-1).^2+1;
plot(plotAx,x,y)
grid off;
linkaxes([plotAx,yax,xax]);
yticklabels([]);
xticklabels([]);
% remove rulers
plotAx.XColor='none';
plotAx.YColor='none';
5 comentarios
Adam Danz
el 30 de Abr. de 2021
I'm not so sure disconnected axes is a very popular idea. What's the benefit of doing this, by the way? Curious.
Más respuestas (1)
Bob Thompson
el 27 de Abr. de 2021
Create your figure first, then create the axes. This will allow you to specify what they are before the data gets populated, and should allow you to fix their positions.
I have not looked at the documentation in enough detail to confirm it will do exactly what you want, but it should be in the axes command.
2 comentarios
Adam Danz
el 28 de Abr. de 2021
cui is correct here. There are no axes properties that can achive this. There are, however, undocumented ruler properties that can achieve at least some of it.
Ver también
Categorías
Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!