plot graph and bar on same figure with 2 x-asis and 2 y-axis with different scales

조회 수: 2 (최근 30일)
I need to plot this 2 graphs in the same figure, one of them using bottom-x Vs. left-y, and the other using top-x Vs. right-y but I cant figure it out, nothing worked for me.
x1=[0.0153 0.2479 0.4366 0.6620 0.8544 0.9197 0.9625 0.9961 1.0000];
y1=[1000 900 800 700 600 500 400 300 200];
p1=plot(x1,y1);
x2=[1000 900 800 700 600 500 400 300 200];
y2=[0.0153 0.2326 0.1888 0.2253 0.1924 0.0653 0.0429 0.0336 0.0039];
b1=bar(x2,y2,1);
I tried yyaxis, plotyy, creating and modifying my own axis, etc...nothing worked.

답변 (1개)

Kostas
Kostas 2019년 3월 16일
편집: Kostas 2019년 3월 16일
You need to create a second axis to plot your line.
See this example
Try something like the following
% Create the data
x1=[0.0153 0.2479 0.4366 0.6620 0.8544 0.9197 0.9625 0.9961 1.0000];
y1=[1000 900 800 700 600 500 400 300 200];
x2=[1000 900 800 700 600 500 400 300 200];
y2=[0.0153 0.2326 0.1888 0.2253 0.1924 0.0653 0.0429 0.0336 0.0039];
figure;
% make the bar plot
b1=bar(x2,y2,1);
ax1 = gca; % get current axes properties
ax1.XColor = 'b'; % change the X axis color to blue
ax1.YColor = 'b';
ax1_pos = ax1.Position; % position of first axes
% Create the second axis to plot the line
ax2 = axes('Position',ax1_pos,...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none');
line(ax2,x1,y1,'Color','k')

카테고리

Help CenterFile Exchange에서 Two y-axis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by