Effacer les filtres
Effacer les filtres

Multiple X-axes non linear to each other

4 vues (au cours des 30 derniers jours)
Marina
Marina le 15 Juil 2013
I am aware that one can generate a plot with two x-axes, is it also posibble to generate such a plot with the x-axes non linear to each other.
I have a vector which can be plotted against both a distance and an angle, but the relationship between these two is not linear. Is it possible to plot the data against both variables in a single plot?
The vectors are not x,y,z, they are rather: y=data; x1=angle; x2=distance;
Using hold on/off doesn't really answer my question nor suit my data.
I have tried using the Multiple-X and Y axis approach from MATLAB docs (<http://www.mathworks.se/help/matlab/creating_plots/using-multiple-x-and-y-axes.html)>. Using the coding below, but the display allows for misinterpretation for the relationship between angle and distance hinting at a linear relationship. What I need is that in the plot below, the axes are so that the curves overlap.
distance=0:12:9000;
angle=atan(distance/1000)*(180/(2*pi));
data=logspace(0,1,length(distance));
x1 = angle;
y1 = data;
x2 = distance;
y2 = data;
figure;
l1 = line(x1,y1,'Color','r');
ax1 = gca;
set(ax1,'XColor','r','YColor','r')
ax2 = axes('Position',get(ax1,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor','k','YColor','k');
hl2 = line(x2,y2,'Color','k','Parent',ax2);
  3 commentaires
Marina
Marina le 15 Juil 2013
Noted!, I've made nicer looking vectors
Marina
Marina le 15 Juil 2013
I am looking for something similar to this, but for the x-axes only: http://i.stack.imgur.com/88llX.gif

Connectez-vous pour commenter.

Réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 15 Juil 2013
Modifié(e) : Azzi Abdelmalek le 15 Juil 2013
If your vectors are x, y and z
plot3(x,y,z)
In your case
plot3(distnace,angle,data)
%or maybe you are looking for two plots
plot(distance,data,'g')
hold on
plot(angle,data,'r')
hold off
  7 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 15 Juil 2013
Then, what you want to do is to plot (data,angle), then just add a second x-axis (distance). Is that what you want?
Marina
Marina le 15 Juil 2013
Yes BUT that the second axis reflects the relationship between angle and distance.
Because I do know how and have done already a plot with two x-axes (That's the code attached to the question), whats missing, is for the second axis to reflect its relationship with the primary axis.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by