Adding India boundary to a figure

Hi,
h = figure;
set(h, 'Color','w')
imagesc(X,Y,wet'); set(gca,'YDir','normal'); set(gca,'YDir','normal');
%hold on, plot(long,lat); set(gca,'YDir','normal')
set(gca,'FontSize', 12, 'FontWeight','bold')
title('WET SEASON','FontSize', 12, 'FontWeight','bold')
h = colorbar; set(h,'FontSize', 12, 'FontWeight','bold')
mymap = [1 0.8 1; 0.7 1 1; 0.9 1 0.5; 0.6 0.7 0];
caxis([0 360]); colormap(mymap)
I want to add India boundary to this figure for which I have a shapefile. I have tried using shaperead and geoshow but it's not working and I am really got stuck into it. Any help will be highly appreciated. Thanks Praveen

8 Comments

jonas
jonas on 5 Jul 2018
Edited: jonas on 5 Jul 2018
Can you provide some data and the shapefile so that we can run your code? Please also format the code ( link )
cd('/home/pkumar')
load('wet_dry_season')
load('coast')
h = figure;
set(h, 'Color','w')
imagesc(X,Y,wet');
set(gca,'YDir','normal');
%hold on, plot(long,lat); set(gca,'YDir','normal')
set(gca,'FontSize', 12, 'FontWeight','bold')
title('WET SEASON','FontSize', 12, 'FontWeight','bold')
h = colorbar; set(h,'FontSize', 12, 'FontWeight','bold')
mymap = [1 0.8 1; 0.7 1 1; 0.9 1 0.5; 0.6 0.7 0];
caxis([0 360]); colormap(mymap)
The size of data for current code is large, so i can't attach here. But I am attaching the figure on which i want to draw boundary and I have also attached .shp file.
1. You format code by selecting the text and click the '{} Code' button.
It looks like this
2. What happens if you draw the shapefile on an empty map? Possibly, your country boundaries appear under the data. No way for me to tell if I don't have the shapefile nor the data (nor the code, as there is no geoshow nor shaperead present).
clc; clear all; close all;
cd('/home/pkumar')
load('wet_dry_season')
load('coast')
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%plot wet season
%%%%%%%%%%%%%%%%%%%%%%%%%%%
h = figure;
set(h, 'Color','w')
S=shaperead('Export_Output_3.shp');
mapshow(S);
imagesc(X,Y,wet'); set(gca,'YDir','normal'); set(gca,'YDir','normal');
%hold on, plot(long,lat); set(gca,'YDir','normal')
set(gca,'FontSize', 12, 'FontWeight','bold')
title('WET SEASON','FontSize', 12, 'FontWeight','bold')
h = colorbar; set(h,'FontSize', 12, 'FontWeight','bold')
mymap = [1 1 1; 0.6 1 0.3; 0.6 0.8 0.4; 0.5 0.6 0.2; 1 0.3 0.9; 1 0 0; 0.9 1 0.3; 0.5 0 1];
caxis([0 360]); colormap(mymap)
Sorry for the inconvenience Jonas. I am attaching the .shp file. And when I am using mapshow, the boundaries are not showing, only the figure comes which i have attached above.
Something wrong with the coordinates of your shapefile. Use this one from ArcGis instead ( link ). See attachment for results.
I=shaperead('INDIA.shp');
mapshow(I,'facecolor','none');
Thanks Jonas. It works now
Nice! Happy to help
Thanks..
It works now.

Sign in to comment.

 Accepted Answer

Chad Greene
Chad Greene on 14 Aug 2018
Alternatively, if you don't have Matlab's Mapping Toolbox you can use my borders function.

2 Comments

I have tried that border function Chad...it has also served my purpose. Just a small query... I want to calculate significant trend using Mann-kendall on a 3-dimensionsl data which contains lat, lon and Julian days value at each grid. Can you please help me in solving this?
Many thanks
Hi Praveen, That's a somewhat involved task I don't have a tidy solution for. I recommend starting a new question with some sample data and maybe someone on the forum can help.

Sign in to comment.

More Answers (0)

Products

Tags

Community Treasure Hunt

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

Start Hunting!