yyaxis: how to get matching ticks on left/right y-axis?

34 次查看(过去 30 天)
In my script I have been using:
plotyy(x,y1,x,y2)
But now editor says "plotyy is not recommended, use yyaxis instead". Not a big issue, so I changed my script, but now left and right vertical axis have different number of ticks (in my case 6 ticks on the left y-axis, 7 ticks on the right y-axis).
So with "grid on" horizontal lines are properly connected to ticks of the left y-axis, but not to the ticks of the right y-axis. How can I fix this? With "plotyy" I always used "YLimits auto" and "YTickMode auto" and never had such problem...

回答(2 个)

Andres
Andres 2022-6-25
编辑:Andres 2022-6-27
More than I like (major) grid lines in plots I hate grid lines that miss ticks on an axis or that connect to ticks at bad values – an insult to the eyes ;-)
You may have a look at my file exchange submission yyaxis tools that contains the function yytick to automatically align the ticks of both y-axes.

Ameer Hamza
Ameer Hamza 2020-3-10
编辑:Ameer Hamza 2020-3-10
You can link the limits of both axes so that they remain the same
fig = figure();
ax = axes();
yyaxis right
linkprop(ax.YAxis, 'Limits');
plot(...); % plot on any of the axes
  2 个评论
JarryG
JarryG 2020-3-10
Yes I can, but it does not look well if curve1 has values 0-7 and curve2 0-600...
Ameer Hamza
Ameer Hamza 2020-3-10
Yes, It will happen. The other alternative is just to let the axis unlinked.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Axis Labels 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by