How to plot patch on geoaxis?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
When I plot geographic data like position data I have a nice base map that I like to use, its black and white and the land border is blue. Ive used it for all my other products and would like to continue using it.
I have depth data from a vehicle I ran and I used patch to color the lat and long points as depth. When I try to add this patch function to a geoplot it tells me geoplot doesnt support patch. Ill attach some code below so you can see what im talking about but is there an easier way to plot depth data like what I have on a geoplot? Thanks!
here how I normally plot position data with my base map:
land = readgeotable("tl_2019_us_coastline.shp");
gx = geoaxes;
geoplot(gx,land)
hold on
geoplot(gx, SpeedLat, SpeedLong)
This works well and I like the look of it. Heres how I plot my patch function:
depthD1(end) = NaN;
a = depthD1;
patch(LongD1, LatD1, a, 'EdgeColor', 'interp', 'LineWidth', 9)
This looks pretty nice as well, however it doesnt have any sort of geographical context. Is there a way to plot patch data on a geoplot or is there another function im not aware of? Thanks!
1 Kommentar
Abhishek
am 23 Jun. 2025
Hi @Bradley, If your depth data is gridded (or can be interpolated to a grid), you can use 'geoshow'.
Antworten (1)
Rahul
am 23 Jun. 2025
Hi Bradley,
I understand that you are trying to visualize depth data on top of your existing geographic basemap in MATLAB, and are encountering issues when attempting to use the 'patch' function with 'geoplot'.
This issue can occur because 'geoaxes' and the 'geoplot' function do not support general graphics objects like 'patch'. Since the goal is to overlay depth information using color on a geographic map, a good alternative could be to use the 'geoscatter' function. This should allows us to plot each (latitude, longitude) point and color it based on a third variable, in this case, depth.
To achieve the same in MATLAB, you can try replacing the 'patch' plotting section with the following code snippet:
gx = geoaxes;
geobasemap(gx, 'grayterrain'); % You can use your preferred black & white basemap
hold on;
% Plot depth data using colored scatter points
geoscatter(gx, LatD1, LongD1, 30, depthD1, 'filled');
colorbar;
title('Depth Visualized on Base Map Using geoscatter');
The 'geoscatter' function supports colored markers that can be mapped to depth values.
This approach maintains the geographic context and preferred base map while visually encoding depth information using color.
Moreover, Axis labels are not required with 'geoaxes', as it displays latitude and longitude automatically.
To know more about the usage of various functions and parameters mentioned in the previous code snippet, you can refer to the following docuementation links:
- 'geoscatter' function: https://www.mathworks.com/help/matlab/ref/geoscatter.html
- 'geobasemap' options: https://www.mathworks.com/help/matlab/ref/geobasemap.html
- 'geoaxes' behavior: https://www.mathworks.com/help/matlab/ref/geoaxes.html
Hope this helps!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Geographic Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!