MATLAB Answers

0

How could i displace the values of X axis under X axis (Y negative) ?

Asked by Oreste Russo on 13 Feb 2019
Latest activity Edited by Yair Altman on 16 Feb 2019
+

  0 Comments

Sign in to comment.

2 Answers

Answer by Star Strider
on 13 Feb 2019
 Accepted Answer

Use the equation (or values) for the line, and plot the numbers just as you have plotted them under the circles. If you do not have an equation for the line that gives you the values for it at every ‘x’ value, use the interp1 function to calculate them.

  4 Comments

Show 1 older comment
Apparently the numbers are not x-tick values, or you could possibly use 'XTick' and 'XTickLabel'.
I have no idea how you are currently writing them, or what relation they have to the x-tick values. (It would help to know.) To put them under the x-axis, you can use the text function:
x_vals = x_values_corresponding_to_the_XTick_locations_you_want_the_numbers;
text(x_vals, zeros(size(x_vals)), compose('%d', 2:2:16), 'VerticalAlignment','top', 'HorizontalAlignment','center')
If you do not have the compose funciton, use sprintfc (undocumented). The arguments are the same:
text(x_vals, zeros(size(x_vals)), sprintfc('%d', 2:2:16), 'VerticalAlignment','top', 'HorizontalAlignment','center')
this is my script for the plot
plot(ALFAinv,CMacinv,'ok','LineWidth',1)
grid on
xlabel('\alpha [°]')
ylabel('C_M_a_c','Rotation',0)
set(gca,'fontsize',11)
ax=gca;
ax.XAxisLocation='origin';
ax.YAxisLocation='origin';
set(gca,'Ydir','reverse')
ax.YAxis.TickDirectionMode='manual';
ax.YAxis.TickDirection='in';
axis([-6 19 -0.8 0.8])
hold on
plot(ALFAxf,CMacxf,'--b','LineWidth',1)
plot(ALFAxl,CMacxl,'-k','LineWidth',1)
title('POLO X=0.265 Y=0 63A412 Re=3e6','LineWidth',1)
legend ('XFOIL non viscoso','XFOIL ascissa forzata','XFOIL ascissa libera')
hold off
I don‘t have your data, so I can’t run your script.
I also have no idea what you want to do.
I gave you valid code. If it doesn’t work for you, I need to know the reason. Your posted code — especially without necessary data — gives me no useful information.

Sign in to comment.


Answer by Yair Altman on 16 Feb 2019
Edited by Yair Altman on 16 Feb 2019

A peculiarity of AxisLocation='origin' is that the X and Y tick labels automatically switch location (from below the X axis to above-it, and from left of the Y axis to right-of-it, respectively) depending on where the axes origin (0,0) is located. You can easily see this behavior by dragging (panning) the axes up/down and left/right, respectively.
If you want to ensure that the labels appear beneath the X axes, then make the YLimit above the axes larger than the one beneath it. For example:
ax.YLim = [-.80001,.8];
axis([-6 19 -0.80001 0.8]); % alternative

  2 Comments

@Yair — Thank you yet again!
+1
My pleasure - see you again soon :-)

Sign in to comment.