Black axes for yyaxis (not default blue and orange)

1,188 views (last 30 days)
I'm having a hard time making the two y axes in my yyaxis plot black instead of the default blue left axis and orange left axis. I think I need to call the axis handle for each but I'm not sure how to define them for multiple y axes.
figure
yyaxis left
plot(btimestamp(k1:k2),Bmean3637(k1:k2),'k');
ylabel('BEUTI')
ylim([-5 40])
yyaxis right
plot(btimestamp(k1:k2),t_mean(k1:k2),'g-');
hold on;
plot(btimestamp(k1:k2),b_mean(k1:k2),'b-');
ylabel('Mean Daily pH')
ylim([7.2 8.2])
legend('BEUTI','Upper pH','Lower pH')
datetick
set(AX,{'ycolor'},{'r';'b'})

Accepted Answer

Star Strider
Star Strider on 23 Mar 2019
Try this:
figure
yyaxis left
plot((1:10), rand(1, 10), 'g')
yyaxis right
plot((5:15), sin((5:15)/5), 'r')
ax = gca;
ax.YAxis(1).Color = 'k';
ax.YAxis(2).Color = 'k';
Experiment to get the result you want.
  4 Comments
Bin Jiang
Bin Jiang on 26 Apr 2020
or a simpler version
set(gca,'YColor','k');
Cheers,
Sara Fawal
Sara Fawal on 23 Jul 2020
Hello Star,
Is there a way to set ALL the Y axis colors in a subplot to black using the findall command?
I want to do this: set(findall(gcf, 'ALL Y Axis Colors', 'k'))
Can it be done.
Thank you

Sign in to comment.

More Answers (1)

Julian Dönges
Julian Dönges on 20 Aug 2021
It is also possible to define the color order beforehand, see yyaxis documentation:
colororder({'b','m'})
yyaxis left
y = [1 2; 3 4];
plot(y)
yyaxis right
z = [4 3; 2 1];
plot(z)
legend
To make both sides black, you would write the first line as
colororder({'k','k'})
  4 Comments
DGM
DGM on 10 Sep 2023
nexttile() creates axes in a tiledlayout. The output is a handle.

Sign in to comment.

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!