How to plot a polar plot from a matrix or excel file ?
Show older comments
I have a matrix A which contains values at different angles & radius. The index of this matrix represents ( angles,radius ) as (i,j) . Now how to plot these values on a polar plot ? I also want to make a contour plot for these values in polar co-ordinate .
Let the matrix be test file ( analytical.csv) attached with this document. It contains 5 columns and 4 rows , colums represent different radius = ( 0 , 0.25, 0.50 , 0.75 , 1 ) and rows represent different angles = ( 0 , pi/2 , pi , 3pi/2 ) respectively.
Thanks
5 Comments
Anshuman S
on 12 Oct 2018
madhan ravi
on 12 Oct 2018
post your code
Anshuman S
on 12 Oct 2018
Anshuman S
on 12 Oct 2018
Star Strider
on 12 Oct 2018
See also:
Need help with contour plot . (link).
Answers (2)
KSSV
on 12 Oct 2018
[A,txt,raw] = xlsread('C:\Users\srinivas\Downloads\analytical.csv') ;
r = [ 0 , 0.25, 0.50 , 0.75 , 1] ;
th = [ 0 , pi/2 , pi , 3*pi/2 ] ;
[R,T] = meshgrid(r,th) ;
% Create polar data
% Convert to Cartesian
X = R.*cos(T);
Y = R.*sin(T);
h = polar(X,Y);
hold on;
contourf(X,Y,A);
% Hide the POLAR function data and leave annotations
set(h,'Visible','off')
% Turn off axes and set square aspect ratio
axis off
axis image
5 Comments
Anshuman S
on 12 Oct 2018
Walter Roberson
on 12 Oct 2018
In MATLAB, it is possible for the same file name to exist in multiple directories. In some situations the version that is chosen is determined by the data types of the variables involved, but otherwise the version chosen is determined by which directory appears first on the MATLAB path, with the current directory having priority in most cases.
You defined your own plot.m either in the current directory or in a directory that is high up in your MATLAB path. In MATLAB, that means that every time that there is call to plot that is not satisfied according to datatype rules (object methods), that your plot.m should be used to override the Mathworks provided plot .
However, the Mathworks provided plot is a function that expects arguments, whereas your plot.m is a script - the first line of it does not start with the word function or classdef.
You will need to upgrade your plot.m into being a function that can accept most of the arguments that the Mathworks provided plot function can accept.
Out of curiosity: what is your motivation for overriding the Mathworks provided plot function? For example are you working on an experimental Re implementation using DirectX instead of OpenGL?
Anshuman S
on 12 Oct 2018
Anshuman S
on 12 Oct 2018
Walter Roberson
on 12 Oct 2018
You have chosen to replace Mathwork's plot.m with your own. Because plot() is called in many places in MATLAB, you will need to upgrade your plot.m to handle all of those cases, which will take a lot of work.
What is it that you are extending plot() to be able to handle that it does not handle already ?
Because a partly-completed plot.m is likely to interfere with your use of MATLAB until you have completely finished your fully-compatible extension or replacement of plot(), we would recommend that you name your plot.m by some other name while you work through the development stages.
... We are not sure what any of this has to do with the task of drawing a contour plot of that matrix. Why not use the regular contour() call to do that instead of developing a complete replacement for plot() ?
Image Analyst
on 12 Oct 2018
0 votes
Do not call your m-file plot.m. Call it myPlot.m or something like that. Obviously change the name inside the file too.
1 Comment
Walter Roberson
on 12 Oct 2018
... and my https://www.mathworks.com/matlabcentral/answers/423580-how-to-plot-a-polar-plot-from-a-matrix-or-excel-file#comment_621408 describes why it is a problem to name your file plot.m if you are not deliberately replacing Mathwork's plot() function...
Categories
Find more on Line Plots 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!