polar plots axis limits
28 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Richard Garner
il 7 Giu 2011
Commentato: rhashaan omar
il 9 Set 2020
How does one set the axis limits in polar plots?
0 Commenti
Risposta accettata
Patrick Kalita
il 7 Giu 2011
Well, unfortunately there's no direct way to do it. But you can cheat (yay! cheating!). Let's say you know you want to have the radial dimension go out to 2. You can add a line of constant radius and then make it invisible:
t = 0 : .01 : 2 * pi;
P = polar(t, 2 * ones(size(t)));
set(P, 'Visible', 'off')
Now you can add the data you actually want to plot:
hold on
polar(t, sin(2 * t) .* cos(2 * t), '--r')
3 Commenti
Jorge
il 18 Dic 2015
Modificato: Jorge
il 18 Dic 2015
@Eric Agreed. The lack of coherence between MATLAB function is a shame. In this case, we have a plotting function where not only xlim or ylim just don't work, you can't also for instance use 'LineWidth' as argument as you do with plot(). But if you do p = polar(), p.LineWidth property does in fact exists! It is just that someone could't be bothered to add property pairs to polar() itself in more than a decade!
Più risposte (2)
Steven Lord
il 29 Dic 2016
With the introduction of the polaraxes function in release R2016a you now have access to properties like ThetaLim and RLim.
Mazin Mustafa
il 29 Dic 2016
Modificato: Mazin Mustafa
il 29 Dic 2016
If you want to plot something such as antenna pattern for e.g. -40 dB to 0dB you may use the following code:
data = 10*log10(abs(data)./max(abs(data))); % Normalize your data
range = -40; % Choose the minimum value in dB
data(isnan(data)) = range;
data = data - range;
data = data./max(data);
data(data < 0) = 0;
polar(theta,data,'k')
view([90 270])
set(findall(gcf, 'String', '0' ),'String', ' ');
set(findall(gcf, 'String', ' 0.2' ),'String', num2str(range-(range*0.2)) );
set(findall(gcf, 'String', ' 0.4' ),'String', num2str(range-(range*0.4)) );
set(findall(gcf, 'String', ' 0.6' ),'String', num2str(range-(range*0.6)) );
set(findall(gcf, 'String', ' 0.8' ),'String', num2str(range-(range*0.8)) );
set(findall(gcf, 'String', ' 1' ),'String', '0 dB' );
1 Commento
rhashaan omar
il 9 Set 2020
could you explain? I'm trying to plot a graph of antenna radiation from -30 to 10 dB. I have a table of the values I digitized using an onlne website, but I can't scale my graph to match the original graph.
Vedere anche
Categorie
Scopri di più su Polar Plots in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!