Plotting a 3-value graph
Show older comments
Hı,
How can I draw the graph whose image I added? can you help me please?
The relationship between values is briefly,
drift ratio - displacement
displacement - base shear
I use the hold on command, but displacement and drift ratio are on the same axis (x axis).
How can I define separate axis like here?

9 Comments
Sam Chak
on 7 Apr 2024
I haven't previously attempted to create a chart with two x-axes and two y-axes. Such a graph can be quite perplexing to interpret, as it may resemble an optical illusion. Let me investigate whether it is possible to achieve this using the linkaxes() command.
rahan sof
on 7 Apr 2024
One method is to use the XAxisLocation property of the axes. Try exploring how it works and see if works out.
x = 0:0.01:10;
y = sin(x);
plot(x, y), grid on
% Create a second x-axis object at the top
ax2 = axes('Position', get(gca, 'Position'), 'Color', 'none', 'XAxisLocation', 'top');
Hi,
You can try this workaround:
% Sample data
x1 = linspace(0, 100, 100);
y1 = sin(x1);
x2= linspace(0,10,100)
figure;
ax1 = axes;
plot(x1, y1)
xlabel('x')
ylabel('sin(x)')
xlim(ax1,[0 100])
% Create the second axes for the top
ax2 = axes('Position', get(ax1, 'Position'), 'XAxisLocation', 'top', 'YAxisLocation', 'right');
hold on
plot(ax2, x2,y1)
xlim(ax2,[0 10])
rahan sof
on 7 Apr 2024
Mann Baidi
on 7 Apr 2024
I'm not sure about the requirement but you can define the relation bewteen them using the equation.
x2=(relation with x)*x;
Hope this will help!
rahan sof
on 7 Apr 2024
Answers (1)
Hi,
I understand that trying to plot two different y-axes for the same x-axis in MATLAB, you can use the yyaxis function. This allows you to create a plot with two y-axes, one on the left and one on the right, each with its own scale.
Here ia an example of how you can plot the relationship between drift ratio and displacement on one y-axis, and displacement and base shear on the other y-axis:
% Sample data
displacement = 0:0.1:10; % Example displacement data
drift_ratio = displacement * 0.05; % Example drift ratio data
base_shear = displacement * 2; % Example base shear data
% Create figure
figure;
% Plot drift ratio vs. displacement on the left y-axis
yyaxis left;
plot(displacement, drift_ratio, '-b', 'LineWidth', 1.5);
ylabel('Drift Ratio');
xlabel('Displacement');
hold on;
% Plot base shear vs. displacement on the right y-axis
yyaxis right;
plot(displacement, base_shear, '-r', 'LineWidth', 1.5);
ylabel('Base Shear');
% Add title and legend
title('Displacement vs. Drift Ratio and Base Shear');
legend('Drift Ratio', 'Base Shear');
% Adjust figure properties
grid on;
I hope this helps!
Categories
Find more on Graphics 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!



