Boxplot: second Y axes labels
3 次查看(过去 30 天)
显示 更早的评论
How can i put the same labels also on both left and right Y axes (tried several solutions but can't make them work as I wish)?
boxplot(rand(100,10))
Thanks
Oleg
0 个评论
采纳的回答
Jiro Doke
2011-3-18
I can only think of a workaround...
EDIT: Per Oleg's comment, I've added a "ResizeFcn" for the figure to adjust the axes properties when the figure is resized.
EDIT 2: Added zoom post action so that the tick labels update upon zoom as well.
function boxplot_test
boxplot(rand(100,10));
ax1 = gca;
ax2 = axes('Position', get(ax1, 'Position'), ...
'Color', 'none', 'YAxisLocation', 'right', ...
'XTick', [], 'YTick', get(ax1, 'YTick'), ...
'YLim', ylim(ax1), 'HandleVisibility', 'off');
uistack(ax1);
set(gcf, 'ResizeFcn', @resize);
h = zoom(gcf); % <-- EDIT 2
set(h, 'ActionPostCallback', @resize); % <-- EDIT 2
function resize(varargin)
set(ax2, 'Position', get(ax1, 'Position'), ...
'YTick', get(ax1, 'YTick'), ...
'YLim', ylim(ax1));
end
end
更多回答(3 个)
Matt Fig
2011-3-19
Hey Oleg, I don't have the Stats toolbox so I can't try it out. But I have an idea. Make one figure with plotyy, then make another with the boxplot you want. Then either COPYOBJ the boxplot over to the plotyy figure or set the parent property of the boxplot to one of the plotyy axes. It might be worth a try...
4 个评论
Jiro Doke
2011-3-19
Yeah, I noticed that. I would go with my solution above, because that uses boxplot as is. Even though the x labels are text objects, they do the "right thing" even when you zoom in and out.
Elena
2011-6-5
also a bit of a workaround: make a plotyy where one the first dataset is empty or all zeros, then use 'hold on' to plot the boxplot over top.
0 个评论
Hussein
2023-8-20
Try this code please
% Create some sample data x = 1:10; y1 = rand(1, 10); y2 = rand(1, 10) * 100;
% Plot the first dataset figure; plot(x, y1, 'b-'); xlabel('X'); ylabel('Y1', 'Color', 'b');
% Add a second Y-axis yyaxis right;
% Plot the second dataset plot(x, y2, 'r-'); ylabel('Y2', 'Color', 'r');
% Set the color of the tick labels for the right Y-axis ax = gca; ax.YAxis(2).Color = 'r';
% Add a legend legend('Y1', 'Y2');
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Two y-axis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!