Change scale of second y-axis on figure

1 回表示 (過去 30 日間)
Eric Escoto
Eric Escoto 2020 年 9 月 29 日
回答済み: Cris LaPierre 2020 年 9 月 30 日
Hello,
I have a figure with two axis, one of which is inverted. The inverted axis needs to be compressed in the y direction so the bars do not ovelap.
Here's my current code, and the figure result is attached.
%% Plot of summary table vs month/day AVERAGES for study period (Jul 2019 to Sep 2020) SUMMER
fig1 = figure; % Summer Precip
hAxes(1) = subplot(2, 1, 1);
yyaxis left
bar(1:height(P2SFL_P_DSsummerperiod_summarytable),P2SFL_P_DSsummerperiod_summarytable.mean_Var1, 'FaceColor', 'blue')
axis ij
ylabel('[mm]')
ylim([0 10])
hold on
yyaxis right
bar(1:height(P2SFL_KE_DSsummerperiod_summarytable),P2SFL_KE_DSsummerperiod_summarytable.mean_Var1)%, 'FaceColor', 'black')
% Decide how many ticks you want. This does every 10 rows (10 days if none missing)
tick_idx = 1:7:height(P2SFL_KE_DSsummerperiod_summarytable);
xticks(tick_idx)
% Label ticks with month and day (e.g., "July 1")
xticklabels(string(P2SFL_KE_DSsummerperiod_summarytable.Month(tick_idx))+" "+P2SFL_KE_DSsummerperiod_summarytable.Day(tick_idx))
% Angle ticks at 45 degrees for easier reading when closely packed
xtickangle(45)
title('CBBG-SFL, Mesa, AZ')%, 'FontSize', 15)
ylabel('[J/m^2]')
%ylim([0 15])
%xlabel('Month and Day')
hAxes(2) = subplot(2, 1, 2);
yyaxis left
bar(1:height(P2JER_P_DSsummerperiod_summarytable),P2JER_P_DSsummerperiod_summarytable.mean_Var1, 'FaceColor', 'blue')
axis ij
ylabel('[mm]')
hold on
yyaxis right
bar(1:height(P2JER_KE_DSsummerperiod_summarytable),P2JER_KE_DSsummerperiod_summarytable.mean_Var1) %, 'FaceColor', 'black')
% Decide how many ticks you want. This does every 10 rows (10 days if none missing)
tick_idx = 1:7:height(P2JER_KE_DSsummerperiod_summarytable);
xticks(tick_idx)
% Label ticks with month and day (e.g., "July 1")
xticklabels(string(P2SFL_KE_DSsummerperiod_summarytable.Month(tick_idx))+" "+P2SFL_KE_DSsummerperiod_summarytable.Day(tick_idx))
% Angle ticks at 45 degrees for easier reading when closely packed
xtickangle(45)
%set(gca,'xticklabel',{[]})
title('JER, Las Cruces, NM')%, 'FontSize', 15)
ylabel('[J/m^2]')
%ylim([20 30])
% Give common xlabel, ylabel and title to your figure
linkaxes(hAxes, 'x');
%xlim([1 92])
han=axes(fig1,'visible','off');
han.Title.Visible='on';
han.XLabel.Visible='on';
han.YLabel.Visible='off';
%xlabel(han,'Month and Day');
%title(han,'Las Cruces International Airport, Summer Season (2001-2020)');
sgtitle('Daily Average Precipitation and Kinetic Energy, Summer Season (2019-2020)')
Thanks!

回答 (1 件)

Cris LaPierre
Cris LaPierre 2020 年 9 月 30 日
Use the ylim function to set the yaxis limits.

カテゴリ

Help Center および File ExchangeGrid Lines, Tick Values, and Labels についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by