MATLAB Answers

0

How do I reduce my right y axis scale ?

Asked by Pierre Lonfat on 2 Mar 2018
Latest activity Commented on by Greg
on 30 Apr 2018
Here is the actual result.
Where you can see the bar chart in green overlapping the curves which is not really nice.
The idea would be to have something like that:
Now the scale is reduce but I have unnecessary number in the right y axis and missing numbers [2 1.5 1 0.5 0].
Can someone help me with that ?
Thank you very much in advance.
Pierre

  2 Comments

My actual code:
f = figure;
set(gca,'FontName','Times New Roman');
yyaxis right
bar(riskpremium.date.raw(1:end,1),riskpremium.decision_action(1:end,1),'FaceColor',[0.5 1 0.5],'LineWidth',1);
hold on
plot(riskpremium.date.raw(1:end,1),ones(length(riskpremium.date.raw))*riskpremium.weights(1,1),'--','MarkerSize',15,...
'Color','k','LineWidth',0.2);
hold on;
plot(riskpremium.date.raw(1:end,1),ones(length(riskpremium.date.raw))*riskpremium.weights(2,1),'--','MarkerSize',15,...
'Color','k','LineWidth',0.2);
hold on;
plot(riskpremium.date.raw(1:end,1),ones(length(riskpremium.date.raw))*riskpremium.weights(3,1),'--','MarkerSize',15,...
'Color','k','LineWidth',0.2);
hold on;
plot(riskpremium.date.raw(1:end,1),ones(length(riskpremium.date.raw))*riskpremium.weights(4,1),'--','MarkerSize',15,...
'Color','k','LineWidth',0.2);
hold on;
plot(riskpremium.date.raw(1:end,1),ones(length(riskpremium.date.raw))*riskpremium.weights(5,1),'--','MarkerSize',15,...
'Color','k','LineWidth',0.2);
hold on;
ylabel('Decision weights - Barometer','FontSize',12);
ylim([0.5 10])
Attach the data so somebody can play around without having to try to make up data that looks similar-enough.
The obvious (I think) would be when you use yyaxis to place one on the RH and another on the LH axes.
In the sequence
My actual code:
bar(riskpremium.date.raw(1:end,1), ...
hold on
plot(riskpremium.date.raw(1:end,1), ...
hold on;
plot(riskpremium.date.raw(1:end,1), ...
hold on;
...
once 'hold' is 'on', it won't get in "onner" by repeating it...once is enough on the given axis.

Sign in to comment.

1 Answer

Answer by Greg
on 14 Mar 2018
 Accepted Answer

yyaxis('right');
ylim([0,10]); % Play with 10 until it looks good
yticks(0:.5:2);

  2 Comments

Happy to help.

Sign in to comment.