Filling NaN void in polar plot

Hello Everyone,
I am dealing with a polar plot that is incomplete due to NaN values in the data. Please see figure 'Void polar plot.png'.
If I replace NaNs with zeros then, of course, I get the whole graph but I do not know if zero is the physically right replacement for NaNs in my problem. This is shown in figure 'Nan to 0.png'. I have also attached the variable Vq that I am plotting (NaNs are replaced with zeros).
Would it be possible to have the same (complete) polar plot with NaNs being in grey color and color bar indicating only the range of real data (excluding grey color)?
My code is as follows:
clear
close all
% Set azimuth and radial range
AngRange = deg2rad([0 180]);
RadRange = [0 2];
% Set polar grid spacing in radial direction
RD = 0:0.5:2;
% Axis properties
axprop = {'DataAspectRatio',[1 1 1],'View', [0 90],...
'Xlim', [-2 2],'visible','off'};
% Load data
load('Vq.mat')
% Plot results using Math Works function for polar plot
polarplot3d(Vq,'plottype','surfn','InterpMethod','linear',...
'AngularRange',AngRange,'RadialRange',RadRange,...
'PolarDirection','cw','TickSpacing',15,...
'PolarGrid',{RD,length(RD)+1},'GridStyle',':');
set(gca,axprop{:});
% Add color bar
ColBar = colorbar('Location','west');
Thanks, djr

6 Comments

Can you simply set
set(gca,'color',0.5*[1 1 1])
or perhaps underlay with a gray patch?
Unfortunately it doesn't work. I still get that incomplete graph, but with gray color around it.
What if you draw a gray circle the size of your polar graph, then plot the polar graph on top of it?
That worked very nice (attached plot). I still need to figure out the labeling for the azimuth axis with this circle introduced because it does not show all angles and grid lines if the graph is incomplete, but at least I covered the gap with NaNs. Thank you!
How do I accept your answer in this comment section? :) I do not see an accept answer button.
Ah, I should know better!

Sign in to comment.

 Accepted Answer

Chad Greene
Chad Greene on 18 Oct 2018
What if you draw a gray circle the size of your polar graph, then plot the polar graph on top of it?

2 Comments

In response to the missing grid ticks--Here's a somewhat absurd solution, but maybe it will work:
1. Plot the polar plot with NaNs set to zero. 2. Plot the gray circle. 3. Plot the polar plot with NaNs transparent.
I'll give it a try... it's a brute force method. :)

Sign in to comment.

More Answers (0)

Categories

Asked:

djr
on 17 Oct 2018

Commented:

djr
on 18 Oct 2018

Community Treasure Hunt

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

Start Hunting!