Polar Contour not interpolating between values

2 次查看(过去 30 天)
I have a function that I found online:
% POLARCONT Polar contourf plot
%
% Richard Rieber
% rrieber@gmail.com
% April 4, 2007
% Updated June 15, 2007
%
% function [C,h] = polarcont(r,theta,z,N,s)
%
% Purpose: This function creates polar contourf plots on the current active
% figure
%
% Inputs: o r - Radius vector of length m
% o theta - Angle vector in radians of length n
% o z - Magnitude at the points specified in r and theta of
% size m x n
% o N - The number of contourfs to plot [OPTIONAL]
% o s - Linespec as described in PLOT [OPTIONAL]
%
% Outputs: o C - returns contourf matrix C as described in contourfC
% o h - Column vector H of handles to LINE or PATCH objects,
% one handle per line.
%
% OTHER NOTES:
% - Both C and h can be used as inputs to CLABEL
% - Colors are defined in colormap
% - Treat this function as a standard contourf plot
function [C,h] = polarcont(r,theta,z,N,s)
[a,b] = size(z);
if a ~= length(r)
error('r is not the same length as the first dimension of z')
end
if b ~= length(theta)
error('theta is not the same length as the second dimension of z')
end
x = zeros(a,b);
y = zeros(a,b);
for j = 1:a
for k = 1:b
x(j,k) = r(j)*cos(theta(k));
y(j,k) = r(j)*sin(theta(k));
end
end
if nargin == 3
[C,h] = contourf(x,y,z);
elseif nargin == 4
[C,h] = contourf(x,y,z,N);
elseif nargin == 5
[C,h] = contourf(x,y,z,N,s);
else
error('Incorrect number of inputs')
end
However, I have a hard time getting the plot to look how I want. The colors do not interpolate between values, and if I increase the number (N) contours, I end up getting a lot of black lines all over my graph. Can someone take a look at my code below, and tell me if there is anything that I have that causes the colors to not interpolate between values? I hate the sharp transitions. Another option would be getting rid of all the black lines that appear if I choose 100 contours. I think I am missing something obvious.
close all
clear
clc
data1 = xlsread('C:\Users\data.xlsx','theta');
data2 = xlsread('C:\Users\data.xlsx','r');
data3 = xlsread('C:\Users\data.xlsx','z');
t1 = data1(1,:);
r1 = data2(:,1);
z1 = data3(:,:);
figure(1)
polarcont(r1,t1,z1,10);
myColorMap = colormap;
myColorMap(1,:) = [1 1 1];
colormap(myColorMap);
colorbar
caxis([0 10])
beta = 0.8;
brighten(beta);
plotting_circle(0,0,100);
plotting_circle(0,0,200);
plotting_circle(0,0,300);
plotting_circle(0,0,400);
axis equal
axis off
Those sharp transitions you see aren't real. There are plenty of color values of 3.9 and 4 that are colored the same as if they were 0 or 1 or 2. Figure is attached. How can I remove the isolines?

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Colormaps 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by