how to have the same settings on right Y axis from the left Y axis

조회 수: 4 (최근 30일)
endystrike
endystrike 2020년 6월 10일
댓글: Ameer Hamza 2020년 6월 12일
Hello everyone,
I struggling in having Y axis both on left and right side of a graph, but with the same settings, the same color and the same Y ticks...
I tried moving the following command "yyaxis right;" before assigning "ytickformat" and so on, but it creates a new axis from scratch and I don't know how to get the settings from the left Y axis and set them into the Y right axis.
Is there the possibility to get all the settings from Y left axis, save them into a variable and then set the Y right axis from the variable that stores everything?
Thanks

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 6월 11일
ax = axes();
yyaxis right
copyAxis(ax.YAxis(1), ax.YAxis(2))
function copyAxis(a, b)
p = properties(a).';
for i=1:numel(p) %copy all public properties
try %may fail if property is read-only
b.(p{i}) = a.(p{i});
catch
warning('failed to copy property: %s', p{i});
end
end
end
You can save the copyAxis function in a seperate file.
  댓글 수: 2
endystrike
endystrike 2020년 6월 11일
Thank you very much Ameer! :)
I've finally fixed modifying a little bit the function you've provided me... :)
function cloneYAxisFromLeftToRight()
fmt = ytickformat(gca);
ax0 = get(gca);
yyaxis right;
ax1 = gca;
p = properties(ax0.YAxis).';
for i=1:numel(p) %copy all public properties
try %#ok<TRYNC> %may fail if property is read-only
ax1.YAxis(2).(p{i}) = ax0.YAxis.(p{i});
end
end
%extras
ax1.YColor = ax0.YColor;
ax1.YColorMode = ax0.YColorMode;
ax1.YDir = ax0.YDir;
ax1.YLimMode = ax0.YLimMode;
ax1.YScale = ax0.YScale;
ax1.YTickLabelMode = ax0.YTickLabelMode;
ax1.YTickLabelRotation = ax0.YTickLabelRotation;
ax1.YTickMode = ax0.YTickMode;
%core
ax1.YTickLabel = ax0.YTickLabel;
ax1.YLim = ax0.YLim;
ax1.YTick = ax0.YTick;
%restore original format on the right Y-axis
ytickformat(fmt);
end
Ameer Hamza
Ameer Hamza 2020년 6월 12일
I am glad to be of help!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by