How to plot an empty 2-D cartesian grid on its own ?
Show older comments
Hello, I would like to plot a 2-D grid by itself as one figure with x ranging from 200-455 and y ranging from 50-305. Could someone please help.
PS: I only need to plot the grid, not any functions.
Answers (2)
>> axes()
>> xlim([200,455])
>> ylim([50,305])
>> grid on
>> grid minor
Or alternatively in one axes call:
axes('XLim',[200,455], 'YLim',[50,305], 'XGrid','on', 'YGrid','on', 'XMinorGrid','on', 'YMinorGrid','on')
Gives:

5 Comments
inspiration
on 17 Jan 2019
"i want the grid plotted on the x and y axes from x=200 to 455 and y=50 to 305, not just display grid lines"
It is not very clear what you want to achieve: do you want the grid lines to go from x=200 to x=455 with a step of 1? It seems that you actually want to control the tick mark locations (tick marks are the little marks perpendicular to the axes, usually where the tick labels are). This is easy to do, but I doubt that you will be happy with displaying 256 X tick marks and 256 Y tick marks and their associated grid lines:
>> axes('XLim',[200,455], 'YLim',[50,305], 'XTick',200:455, 'YTick',50:305, 'XGrid','on', 'YGrid','on')

Note how too many tick marks simply become incomprehensible. If that is not what you want then you will need to explain your need much clearer.
inspiration
on 17 Jan 2019
Edited: inspiration
on 17 Jan 2019
Steven Lord
on 17 Jan 2019
Do you have a picture (not from MATLAB but from a textbook, webpage, or hand-drawn) that you can link to or can attach to a comment to show us exactly what you want? It's not clear to me what requirement you have that Stephen's suggestion fails to satisfy.
"i actually want to plot a 2d grid on the cartesian coordinate system and the grid should be in the specified range."
And that is exactly what my answer and my comment have shown you:
- my answer shows a grid with a step of ten, whereas
- my previous comment shows a grid with a step of one.
They are both exactly over the range that you requested. If you really want to plot a grid yourself (rather than sensibly using the inbuilt grid capabilities) then you can do this quite easily using meshgrid, ndgrid, and line:
>> [X,Y] = meshgrid(200:455,50:305);
>> line(X,Y)
>> [X,Y] = ndgrid(200:455,50:305);
>> line(X,Y)
but I suspect that you will be quite disapppointed with that densely populated graphic. You could mess around with ismember and colon to try and get the grid lines where you want them, but there is little point as grid does it already. In any case, rather than making us guess what you want, please can you please show an image of exactly what you expect.
madhan ravi
on 17 Jan 2019
Perhaps?
[X,Y]=meshgrid(200:10:455,50:5:305);
mesh(X,Y)
view(2)
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!