我已经阅读了几个关于为数据设置两个x轴的SO答案,以及在mathworks.com上的一些教程,但我没有看到完全如下的方法:
通常绘制数据集第一 . 在图形的顶部创建第二个x轴,但使用现有的y轴作为下一个数据集 . 绘制第二个数据集,使其控制第二个x轴(缩放等),并且不会覆盖或重新缩放现有的单个y轴 .
这样做的原因是我想基于相同的源数据集绘制两组不同的直方图值,因此频率分布的大小相似,但是bin大小/边的值是不同的 .
我的后备是对第二个数据集的x数据进行点斜率缩放,但是我仍然需要创建类似于How to insert two X axis in a Matlab a plot的第二个x轴 .
2 回答
您可以在第一个轴(在同一位置)上创建第二个轴,其中XAxisLocation设置为
'top'
,没有Color
,因此它与第一个轴的链接相连's transparent, has no yticks, and has it' s YLim . 另外,我们可以链接Position
值以确保如果我们调整其中一个轴,它们会调整大小以保持其外观 .由Carl W编辑(OP)
当刻度间距不同于顶部和底部时,上面的代码将导致丑陋的XTicks . 我在matlab remove only top and right ticks with leaving box on找到了一个解决方法 . 我稍微修改了上面的代码
警告:这不适用于绘图,它将覆盖现有的轴分配 .
由于没有
points
函数(愚蠢的MathWorks),我不得不做line(x,y,'linestyle','none','marker','x','parent',hax2)
来获得积分 .这给了
这是我用
plotyy
做的那种hacky方式 .Code:-
我觉得不需要在这里添加图例,因为轴和绘图颜色已经指示了图例 . 见下图:
但是,如果您仍想添加图例,可以使用以下内容:
Output:-