Plotting a 3-value graph
古いコメントを表示
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 件のコメント
Sam Chak
2024 年 4 月 7 日
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
2024 年 4 月 7 日
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
2024 年 4 月 7 日
Mann Baidi
2024 年 4 月 7 日
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
2024 年 4 月 7 日
回答 (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!
カテゴリ
ヘルプ センター および File Exchange で Graphics についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




