图片缩略图

addaxis.

版本1.1.0.0(21.4 kB) 哈利·李
添加多个y轴到绘图。可缩放缩放修改。

192下载

更新2016年7月7日

视图版本历史

查看许可证

编者按:这个文件被选为MATLAB中心本周精选

使用addaxis.m将多个轴添加到绘图中。自动调整轴以容纳任意多个轴。
使用addaxisplot.m向任何添加的轴添加更多绘图
使用addaxislabels.m向任意轴添加y标签

所有的绘图一起缩放。对缩放功能的一个小修改允许所有添加的轴随缩放而更新。

包括R11.1和R14SP2的缩放修改。

用法几乎就像绘图命令一样,请参阅addaxis.m的帮助。

引用为

哈里李(2021年)。addaxis.(//www.tatmou.com/matlabcentral/fileexchange/9016-addaxis), MATLAB中央文件交换。检索.

意见及评分(155)

吴素阳

我有Matlab2017b和2019a。在addsplot函数中将“colorord”替换为“ColorOrder”后,此工具箱在这两个版本上都能正常工作。感谢下面的所有评论。

弗雷德里克里斯

有谁知道为什么它不适用于栏图?你能推荐另一个游乐器吗?

安德烈斯戈麦斯

我不知道为什么它不起作用。我使用的是MatlabR2019A

格诺特施泰纳

金承吉

贾松格里格

贾松格里格

不适用于R2018b

迭戈·贝拉

非常感谢!只是我需要的

对于那些对“colororord”有问题的人,请看下面的答案。

Daniel Agramonte.

坦率地说,我认为Github应该为此而设计。我很喜欢这个函数,但坦白说,它已经过时了,需要一些TLC。也有一些基本功能是相当缺乏的,如重新着色和调整轴的大小。可以使用MATLAB的内置功能来实现这些函数,但它不能与基本功能无缝实现。

郑泽拉

如果将colorord更改为ColorOrder对您不起作用(我的版本是2017a,不知何故更改代码对我不起作用),Alysia Herr建议了一个很好的解决方案。当您使用该函数时,现在将[h,a]=addaxis(x,y);而不是addaxis(x,y),然后调用句柄来调整轴属性。

lvn.

里卡多。scandroglio

使用Matlab R2019b -不工作

数字
x = 0: .1:4 *π;
图(x,sin(x));
addaxis(x,sin(x-pi / 3));
错误使用matlab.graphics.axis.Axes /
在Axes类上没有colorord属性。

aa_splot错误(第13行)
跳线=get(gca,'colorord');

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

魏查理

雅典娜Kontopoulou

这个功能对于每个添加的轴一个绘图很好。有人能告诉我如何在每个轴上添加两个绘图吗?

塞缪尔·蒙塔沃

对我不起作用。

杨玉云

我在addaxes.m函数描述中尝试了这个例子,但是得到了一个错误“内存不足。可能的原因是程序中的无限递归。”会出现什么问题?

阿比吉特达斯酒店

我使用了addaxis和myaxisc,而对于我的情况,我能够在没有任何问题的情况下创建地块。干得好!

杰森·尼科尔森

myaxisc看起来很有希望。我想在分叉addaxis之前会尝试一下。

杰森·尼科尔森

我想哈里已经好几年没有更新过这个了。我认为是时候把它分叉,放到Github上,然后修补它了。

安娜·图佐娃

阿德尔优素福

函数文件非常好。我希望x轴也有相同的功能&它们都是MATLAB plot()包的一部分

Naba

感谢这个伟大的工具。但我在设置附加轴上的轴限时遇到了问题。有人有什么想法吗?

Arun Kumar

datavalue游标问题解决了吗?我看到下面很少有人提到这个问题,但我找不到解决方案。

Logjam.

感谢您编写了这么好的函数!易于使用,也感谢下面提到ColorOrder修复的人。

维贾伊

关于我昨天的查询(2020年5月25日),我找到了一个临时解决方案。我只是在aa_splot中用'default'替换了cord(mod([0:6]+1,7)+1,:)。m文件。这使直线和轴具有相同的颜色。但是对于第一个绘图(如示例代码中的绘图选项),颜色应该手动定义。

维贾伊

嗨,哈利,这是一个很棒的功能。

我在这里遇到了一个小问题。线条的颜色与轴的颜色不匹配。(1)我如何修复它?(2)我是否可以将轴设置为默认颜色,如黑色(因为我希望线条具有不同的标记)?

Jeppe Færgemand

Zongwei么

嗨,功能很棒
有一个小问题。在2020a版本中,“colorord”已被“colororder”取代,因此aa_splot.m可能需要调整。

凯瑟琳

该功能真的很好!但是,轴标签和刻度总是被切断,所以我不能保存这个数字,因为一个人不会看到标签。我当然可以伸展窗户,但那么整个情节会伸展它。任何人想知道我做错了什么?

德博拉·马托吉

对于Matlab 2018b及以上版本的用户,如果(第13行)出现错误,请在Kartikeya Gupta的以下评论中找到。

1) 打开aa_splot.m文件
2) 将“colorord”更改为“ColorOrder”-->我通过执行CTRL+F将每个“colorord”替换为“ColorOrder”来完成此操作

如果它不起作用,很可能您没有更换每个“colorord”

我希望这是有帮助的!

这是一个很好的抓取工具。谢谢分享!

迈克尔的角

在2018a,我在“addaxis.m”中绘制注释示例时出现以下错误

错误使用matlab.graphics.axis.Axes /
在Axes类上没有colorord属性。

aa_splot错误(第13行)
跳线=get(gca,'colorord');

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

test_addaxis_plot错误(第3行)
addaxis(x,sin(x-pi / 3));

雅各布·维斯

增加输出变量h和hplt的轴和行句柄输出:
函数[h,hplt] =…

将以下行添加到轴控制柄输出的最后一个if环境中(同时添加到“if”和“else”部分):
h = axhand(结束);

将以下IF-Inventron添加到最后If-Information的嵌套循环中(仅在“else”部分中),以(在视觉上)删除第一个addaxis(右手Y​​轴)之间的偏移量主要轴:
如果I == 1
集(axhand (indshift (I) + 1),“颜色”,[1 1 1];
终止

雅各布·维斯

看起来与我的编辑有评论已删除...

雅各布·维斯

很棒的小功能!为之欢呼。我添加了一个轴和线句柄输出,并且(视觉上)删除了第一个addaxis(右侧y轴)和主轴之间的偏移。请参见下面的代码。

KubraD

亲爱的授权人,这个功能非常有用,我衷心祝贺你。我在我的matlab gui中使用了这个函数。但是数据指针(图中)不能使用addaxis。请帮助我。我会好奇地等待你的答案。

WONMOOK李

下面的问题没有解决方案吗?T_T
-当你插入一个“数据提示”来验证添加的数据值与addaxis功能,Y值总是主图,而不是添加的轴

勒内·拉布内克

安德烈·阿尔梅达

亲爱的Harry Lee,你的addaxis函数非常棒,非常有用,我已经在我正在做的数据分析中应用了,我需要在同一个图上绘制超过3个Y轴,它工作得很好,但我有一个问题,我希望你帮助解决:
问题1 -当我们潘垂直尺度的情节增加了使用addaxis函数不更新(轴不与主要情节规模)如果我们放大,后盘垂直“恢复视图”后,你会发现天平保持与原始数据绘制非相干。我尝试过使用链接轴功能,但我不知道如何。
问题2 - 当您插入“数据提示”以验证使用addaxis函数添加的数据值时,y值始终是主图,而不是添加的轴。例如,如果您有y1(0到10)值,并且您使用y2(500到1000)值添加新轴,如果您在y2 plot上插入“数据提示”,则会看到Y1的值。
问题3 - 在绘图的右上角显示的“主页按钮”,用于“恢复视图”的右上角不起作用。可以执行此功能开放工具>还原视图

我在Windows 10上使用Matlab R2019a。
我花了几周试图找到这个问题的解决方案,但我没有成功。如果您或Matlab社区,我会很欣赏。
PS:问题可以在addaxis函数的注释中使用应用实例进行再现。

addaxis(//www.tatmou.com/matlabcentral/fileexchange/9016-addaxis)

•Sadighrad

卢卡斯他

通过将所有“colorord”更改为“ColorOrder”4.95/5来编辑aa_splot.m文件,这将非常有用

马克斯·墨菲

使用matlab.graphics.axis.Axes/set时出错
在Axes类上没有colorord属性。

aa_splot中的错误(第18行)
套件(gca,'colorord',跳线(mod([0:6]+1,7)+1,:);

任何有此问题的人,请将aa_splot.m中的“colorord”(或“ColorOrder”)更改为“ColorOrder”(至少,这对我有效)。

米切洛

我和其他人有同样的问题:
使用matlab.graphics.axis.Axes/set时出错
轴类上没有ColorOrderer属性。

aa_splot中的错误(第18行)
套件(gca,'colorOrder',跳线(mod([0:6]+1,7)+1,:);

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

请帮忙!!

ram v

勒内·拉布内克

我与kartikeya gupta有同样的问题,带有R2018B版本。
在Axes类上没有colorord属性。

加布里埃尔·比肖夫

好的,我想我明白了。
如果要更改您可以执行的大小:
set(gca, 'Position', [0.10 0.1100 0.5 0.5150])

艾琳·格雷

有人知道为什么压缩文件打不开吗?我今天下载其他软件包没有问题。我的电脑显示“错误1——操作不允许”

Hima Nik.

利亚姆史密斯

使用GUIDE时,必须确保轴对单位使用“规格化”(GUIDE将其设置为“字符”):set(handles.axes1,“units”,“normalized”);

Kartikeya古普塔

位置1中的索引超过数组边界(不得超过1)。

aa_splot错误(第32行)
套件(gca,'Color',跳线(mod([0:6]+1,7)+1,:);

addaxis错误(第124行)
hplts = aa_splot(变长度输入宗量{:});

Kartikeya古普塔

我还使用matlab.graphics.axis.Axes/get获得了error'error
在Axes类上没有colorord属性。
我把“colorord”改成了“ColorOrder”,里面有安蒂诺·鲁弗爵士的评论,但现在我弄错了
错误使用matlab.graphics.axis.Axes /
Axes类上没有ColorOrder属性。
我正在使用matlab2018b

文斯Clementi

很好的代码。有没有办法指定每个轴的方向?似乎所有的值都会沿着y轴增加很多。但是,我有增加和减少的数据,每当我反转y方向时,它基本上会翻转整个绘图。谢谢。

安东尼奥·鲁福

找到了错误。在文件“aa_splot.m”中,必须将所有显示“colorord”的内容替换为“ColorOrder”。在那之后一切都正常。

安东尼奥·鲁福

我正在使用2017b,我得到以下错误'错误使用matlab.graphics.axis.Axes/get
在Axes类上没有colorord属性。

尼古拉Puumalainen

有没有办法将其中一个轴移动到另一个X位置而不是末端?

谢谢

许多何

当我运行以下代码:
semilogy (x1, y1)
addaxis(x2,Y2)
addaxis (x3, y3)
addaix (x4、Y4)

然而,Y4中的Y刻度搞砸了,并没有反映真实价值。当我更改半音来只是绘图(x1,y1)时,一切都很好。任何解决方案?谢谢!!

韦斯利·尼尔

我一直在玩一种让所有轴到一边或另一方的方法。似乎没有参数来陈述您希望新y轴显示的图表的哪一面。在我看来,这使得一些非常丑陋的图形。

克里斯·马丁

它对我很有效。但是,是否有方法控制轴的偏移?目前,我的输出在一侧有两个y轴,但它们或多或少位于彼此的顶部。我需要添加足够的间距以包括轴标题并保持可读性。

丽贝卡·埃利斯

我得到这个错误仍然在下列评论后

错误使用matlab.graphics.axis.Axes /
Axes类上没有ColorOrder属性。

aa_splot错误(第13行)
cord=get(gca,'colorOrder');

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

一郎田农

在评论中声明的修复后工作得很漂亮!

sanghyeok lee.

胡里奥Fuentealba

在将Keller的“colorord”用于“colororder”修复后,在R2016a上工作得很好。

达山耆那教

诺维弗朗西斯

哈什·辛格

哈什·辛格

当我在图中使用数据光标时,我得到了一个附加轴的错误值。有什么想法可以纠正吗?

奥利弗·费迪南德

使用R2016b时,使用这组函数也会出现相同的问题。

以下是我们的解决方案,需要进行相当简单的更改:

查找第16行“lastColor=get(oldplots(1),'colorord');”,我猜是第16行。将used属性从“colorord”更改为“Color”。

细节:
“addaxis”时出现问题。M "调用"aa_splot"在第135行"hplts = aa_splot(varargin{:});
结构“如果”应将变量“oldplots”中最后使用的“颜色”与“ColorOrder”中即将使用的绘图颜色进行比较。
我还建议将所有剩余的“colorord”改为“ColorOrder”,以便更简单地阅读。

问候,奥利弗

Sathyamoorthy R

如何在程序中添加x轴和y轴的值?

罗伯特·布洛克

是否可以在这些附加的坐标轴上使用面积或散点图?

雷征

Alysia Herr.

在aa_splot中,您可以注释掉“set(gca,'colororder',cord(mod([0:6]+1,7)+1,:);”(两次都出现)如果杰西卡·凯勒的修复方案不起作用。然后手动更改颜色。

通过更改addaxis的第一行来创建轴和行句柄。m函数:
[h] = addaxis(变长度输入宗量)
并将这一行添加到addaxis.m代码的末尾:
如果nargout>0,h=hplts,a=h_ax;终止

然后,您可以使用“h”控制柄(即h.color='k')调整线条的颜色,并使用“a”控制柄(即a.YColor='k')调整轴的颜色。

鲍勃光子学

即使将colorord更改为colororder,我仍然会收到此问题(2016a)

索引超出矩阵维度。

aa_splot中的错误(第18行)
套件(gca,'colororder',跳线(mod([0:6]+1,7)+1,:);

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

鲍勃光子学

错误使用matlab.graphics.axis.Axes /
在Axes类上没有colorord属性。

aa_splot错误(第13行)
跳线=get(gca,'colorord');

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

它大部分时间都可以很好地工作,但我收到了这个问题(2016A)

日常用品Grossbard

我如何改变附加轴的字体大小?

英格丽德·库佩斯

轴手柄中的用户数据为空,因此我无法操作不同的轴(例如,将一个轴设置为反向)。如何获得不同轴的轴柄?

alistairkeffen

我得到了这个错误:

未定义的函数或变量'getaddaxisdata'。

addaxis中的错误(第66行)
axh=getaddaxisdata(cah,'axisdata');

有人知道怎么解决这个问题吗?

卢卡Raimondi

是的,在MatlabR2017B上,按照Jessica Keller的建议,它真的像一个符咒一样工作。非常感谢。

开尔文

谢谢Jessica Keller提供的关于colorord的提示!!

杰西卡·凯勒

如果出现错误:“Axis类上没有colorord属性。进入aa_splot并用colororder命令替换所有colorord。2017版对我很有用。

我在缩放情节时遇到了问题:
1.单击缩放,我在两个轴中的“一直”缩放。
2.使用rbbox,我可以部分缩放x轴,但y轴“一直”缩放。
3.使用“zoom ON”或“zoom XON”,对x轴缩放能力没有影响。
4.我使用的是R2014a
请帮忙。

更准确地说:
1.单击缩放,我在两个轴中的“一直”缩放。
2.使用rbbox,我可以部分缩放x轴,但y轴“一直”缩放。
3.使用“放大”或“缩放XON”没有任何区别。在X轴缩放功能中。
4.我使用的是R2014a
请帮忙。

克斯

这是错误代码:
索引超出矩阵维度。

aa_splot中的错误(第18行)
集(gca, ColorOrder,绳(mod (0:6 + 1, 7) + 1,:));

addaxis中的错误(第135行)
hplts = aa_splot(变长度输入宗量{:});

两个_图中的错误(第19行)
addaxis(x,y3);

克斯

您好,问题的解决方案是“Axis类上没有colorord属性”。这对我没有帮助。你还有别的建议吗?

Rene因特网

你好
问题的解决办法
'轴类上没有Colorord属性。

aa_splot错误(第13行)
cord=get(gca,'colorord');'

进入文件aa_splot并将“colorord”替换为“ColorOrder”(3次)。
这为我解决了问题。

杆位

内特霍恩

尝试了解如何在导入excel数据时使用此代码。现在我正在运行示例代码并试图理解发生了什么。我得到了这些错误。

错误使用matlab.graphics.axis.Axes /
在Axes类上没有colorord属性。

aa_splot错误(第13行)
跳线=get(gca,'colorord');

addaxis错误(第145行)
hplts = aa_splot(变长度输入宗量{:});

addplottest中出错(第3行)
addaxis(x,sin((x-pi)/3));

我想把它联系起来的代码是
Forward=xlsread('MATLABsheet'、'Forward'、'U3:AD18')
%1是正向的,2是径向的,#是反向的(A=TDH B=BH C=eff%)
x =前进(:1);

日元=前进(:,4);
y2=正向(:,7);
y3=正向(:,10);

图(x,y1);
addaxis (x, y2);
addaxis(x,y3);

addaxislabel(1,“一”);
addaxislabel(2,'二');
addaxislabel(3,'three');

但我不明白其余的

内特霍恩

安德烈奥利维拉

很棒的文件。
我想知道是否有一种方法可以将变量设置为addaxis,就像我们绘制的那样。
例如:
p1=绘图(t,数据,'displayname','Data1')

趋势

谢谢你,它工作得很好!然而,我在X轴上寻找相同的。是否可以将其调整为x轴?

另一个修改是将第一个添加的轴粘在图形的右侧,而不是留下一个小空间。我会发现它在视觉上更干净。

Vidz

Janapati Jayalakshmi.

艾尔

你好

我怎么能移动轴标签随着情节本身?
我有2个不同的子图与addaxis功能,但他们的方向不匹配,所以我需要手动设置
我可以修改isslabel,但绘图本身不会改变

功能强大!

我可以改变附加轴上的记号数吗?谢谢

护住王

当我将图形复制到word时,在添加的y轴上会有一个灰色的条,我如何删除它们?

护住王

这正是我需要的!多轴和放大或缩小。

穆罕默德

工作好了!我只需要去掉色带变量和相关变量。它一直给出“超出矩阵索引”的错误。没有它,它也很好。我只多用了一个y轴。
谢谢

哈森

你好

我已经更新到R2016a。通过使用addaxis,我得到了这个错误,有人能给我一个建议吗?我正在尝试用addaxis绘制两条线和一条线。

addaxis中的错误(第131行)
hplts = aa_splot(变长度输入宗量{:});

Bar_line错误(第41行)
addaxis(dn,ComMean(:,1));

杰雷米

谢谢你这个好工具。
是否可以使用addaxis在x轴上添加轴?
谢谢

艾米

有办法把多条线加到同一个轴上吗?例如,我有电流,电源和电压两种不同的东西。我需要3个不同的轴,但我想要每两条线。

福特克雷顿

有没有办法水平压实轴一点?拥有5或6个轴导致曲线要变小。

还有,2015a或2015b是否有调整计划?

谢谢你的出色工作。

MichMichel

谢谢你的好意。。。。普洛蒂真是糟透了!解决了2d轴的所有问题,非常好:)
非常感谢。

Mikko Pesola

我在2014b中使用了它,并进行了以下更改:
aa_splot.m:
更改“colorord”为“ColorOrder”

aadwindowresizefcn.m:
将“if ax_manage”改为
“如果isa (ax_manage matlab.graphics.axis.Axes)”

伟大的!只有在Matlab 2014a上,我必须在Aa_splot.m“colorord - > colorOrder”中重命名。

Florian hasse还

所提到的readme.txt路径不存在,所以我不能用下载时附带的文件来替换它们。

艾伦

干得好!!
非常有用的。有人知道如何反转一个特定的y轴吗?使用ax=plotyy(),您选择轴ax(1)或ax(2),并使用'ydir'属性反转它。但是对于addaxis,我没有得到它。

同庆

非常感谢你,哈里。它非常有用。顺便说一下,我想画多个x轴而不是y轴。我可以知道如何修改你的文件,使之符合我的要求吗?

约翰

由于某种原因,这个函数使一个带有visible = off的图形变得可见。我从代码里找不出原因。什么好主意吗?

爱德华

伟大的功能。有麻烦的图例显示一个角落的情况。有人有解决以下问题的方法吗?//www.tatmou.com/matlabcentral/answers/158068-hide-legend-entries-with-addaxis-function

爱德华

约翰

回答了我自己的问题。使用下面的函数得到一个新的轴柄,然后像这样调整:

设置(haxis2,'Position',[0.90 0.1100 0.001 0.8150]),修改X位置(.90)和宽度(0.001)。

Elisa

阿里Hummos

我需要为新创建的轴获取一个句柄来更改它的属性。我发现编辑文件addaxis中的第一行非常有帮助。m:
函数[h_ax]=addaxis(varargin)
这样函数返回新创建的轴的句柄。
连续的工作。谢谢!

Zhenjia

我的错误总是:

索引超出矩阵维度。
aa_splot中的错误(第18行)
套件(gca,'colorord',跳线(mod([0:6]+1,7)+1,:);
addaxis中的错误(第131行)
hplts = aa_splot(变长度输入宗量{:});

电线的尺寸是1*3,不是7*3。有人遇到过这个问题吗?谢谢。

雷纳托

哈里,干得好。非常感谢。
我一直在寻找一个版本,使可能撤消addaxis。它的意思是,回到以前的状态。如果我添加了3轴,当撤消图形显示原来的plot和添加的2轴,等等…
你知道我该怎么做吗?

谢谢

拜仁科学

很棒的节目!但它是否可以改进,以便我们可以将误差条与曲线图一起绘制?

查尔斯

我很抱歉昨天不小心给这个功能评分了一颗星,我不是故意的,但我不知道如何编辑我之前的评论或评分。

我今天确实让代码正常工作了,尽管我并没有真正改变什么。所以我不知道具体是什么问题。

查尔斯

我刚下载了这个函数,在运行示例代码时,出现了一个错误。我不知道发生了什么。有什么想法吗?

示例代码:
x = 0: .1:4 *π;
图(x,sin(x));

addaxis(x,sin(x-pi / 3));
addaxislabel(1,“一”);
addaxislabel(2,'二');

传奇('一',' 2 ');

错误如下所示…
“??”类型为“cell”的输入参数的未定义函数或方法“setaddaxisdata”。

==> addaxis在137处出错
setaddaxisdata (cah、axh axisdata);

错误在==>测试在3
addaxis (x,罪(x-pi / 3));“

有人回答过Ian关于制作axes原木秤的问题吗?我想知道怎么做。谢谢!

普里耶什·戈赛

奥德耶米香豆素

嗨,伙计们,在我遇到这段代码之前,我一直在想办法将2个右y轴和1个左y轴放在同一个图例框中。我想问一下,它是否可以将我的所有对象放在一个图例框中。感谢等待您的答复以及如何操作

托拜厄斯

功能强大!
对于那些不知道如何使缩放和平移工作的人,这里有一个解决方案:

1.打开addaxis。在新的坐标轴上绘制%以获得自动生成的ylimits
hplt=绘图(varargin{:});"

2.在“hplt=plot(varargin{:});”之后添加以下代码:
h_new=缩放;
设置(h_new、'ActionPostCallback'、@postcallbackzoom);
设置(h_new、'ActionPreCallback'、@precallbackzoom);
set(h_new,'启用','上');
集(h_new,“使”,“关闭”);
h_new =锅;
set(h_new,'afticepostcallback',@ postcallbackpan);
集(h_new, ActionPreCallback @precallbackpan);
set(h_new,'启用','上');
集(h_new,“使”,“关闭”);

3.转到“addaxis.m”的末尾并添加以下代码:

函数precallbackzoom (obj, evd)
老(1:2)= (evd.Axes YLim);
老(3)= evd.Axes;
ax = findall(obj,'类型','轴');
ax=ax(ax~=evd.axs);
腿= findall (obj,‘标签’,‘传说’);
如果(〜inempty(腿))
ax=ax(ax~=findall(obj,'Tag','legend');
终止
对于i=1:长度(ax)
old(i+1,1:2)=get(ax(i),'YLim');
老(i + 1, 3) = ax(我);
终止
setappdata(obj,'odexes',旧);

后缩放功能(obj、evd)
老= getappdata (obj, OldAxes);
new(1:2)=get(evd.Axes,'YLim');
d=(旧(1,2)-旧(1,1));
d1 =(新(1)的孩子(1,1))/ d;
d2=(新(2)-旧(1,2))/d;
s =尺寸(旧);
对于i=2:s(1)
d =老(我,2)的孩子(我,1);
设置(旧(i,3),'ylim',[(旧(i,1))+ d * d1,(旧(i,2))+ d * d2]);
终止
函数postcallbackpan (obj, evd)
集(obj, WindowButtonMotionFcn’,”);

函数precallbackpan (obj, evd)
ax = findall(obj,'类型','轴');
ax=ax(ax~=evd.axs);
腿= findall (obj,‘标签’,‘传说’);
如果(〜inempty(腿))
ax=ax(ax~=findall(obj,'Tag','legend');
终止
老人= [get (gca, YLim), ax的];
集(obj, WindowButtonMotionFcn, {@CallbackPan, obj});
setappdata (obj,‘老人’,老人);

函数CallbackPan(hObject, eventdata, handles)
老= getappdata (hObject,‘老人’);
新(1:2)= GET(GCA,'YLIM');
d =(新(1)的孩子(1))/(新(2)- (1));
对于i=3:长度(旧)
d1 = get(旧(i),'ylim');
d1=d1(2)-d1(1);
集(老(i)、“YLim”、d1 + d * d1_);
终止
(1:2) =新老;
setappdata(hObject,'OldY',old);

4.就是这样。保存addaxis。M,并享受缩放和平移。顺便说一下,您不需要使用这个函数提供的新的缩放功能(R11.1和R14SP2的缩放修改)。
在Matlab 2012b上进行测试。

马蒂恩

伟大的

有人能解决缩放问题吗。自述不适用于我,因为我使用Matlab 2012。

如果你知道解决方案,你能寄给我吗?或者把它放在这里?martijnvanhooff89@gmail.com.

长沈

漂浮

Erik://www.tatmou.com/matlabcentral/newsreader/view_thread/292235,谢谢你,埃里克!

有人知道如何放大和缩放附加轴而不仅仅是主轴吗?

漂浮

非常感谢。有人知道如何获得正确的数据游标值吗?我仅从主y轴而不是“添加轴”获取y值:(

路标

谢谢!有谁能告诉我如何使所有额外的轴都添加到同一边(对着原轴)?

拉尔夫

查德·格林

马提亚Pospiech

我想使用这个工具,因为plotyy不提供只在一边显示轴刻度的选项。

但是右边的第二个轴与实际的绘图区域分开了,这看起来是错误的。并且没有手柄,所以我不知道如何修改样式。
在自述和文件中都没有文档,所以我只能猜测我要调用什么。

任何帮助都是受欢迎的,以绕过所有的阴谋问题。

这个问题链接到这里:
//www.tatmou.com/matlabcentral/answers/28436-plotyy-with-sync-yaxis-tics-on-both-sides

P K

我弄明白了!
我只是使用了以下命令:
AX=findall(0,'type','axes');
套件(AX(2),‘字体大小’、16、‘字体重量’、‘粗体’)

P K

伟大的工具!

我遇到了plotyy的问题,这个函数解决了所有问题。我只想知道一件事:如何更改新轴上的线条粗细、字体大小和字体样式?
会欣赏任何帮助。

大卫C.

没有变焦也可以工作。有人能评论一下如何解决缩放问题吗?我也不确定如何修复缩放问题与linkzoom。会欣赏任何帮助。

霍恩

伟大的工具!

Gaurav古普塔

埃里克

我已经回答了我自己的问题:

//www.tatmou.com/matlabcentral/newsreader/view_thread/292235

最好的

埃里克

埃里克

伟大的工具!

不幸的是,我无法获取数据光标以在给定点找到绘图的值。我尝试使用Ben的修改与建议//www.tatmou.com/金宝appsupport/金宝搏官方网站solutions/en/data/1-31q3hk/?solution=1-31q3hk.无济于事。

有人有可行的解决方案吗?

伟大的工具!我很惊讶matlab没有像gnuplot那样更好地处理这个问题。

如果您需要更改LINESTYLES,YTIC等,只需将addaxis声明更改为:

函数[hplts,h_ax] = addaxis(varargin)

这会给你回到情节的句柄(好像你打电话给h = plot(...))和轴(h = x轴(...))。

唯一悬而未决的问题是将图例放置在绘图之外……一个解决方案可能是将所有新的y轴放置在右侧(而不是交替左/右),然后将图例放置在东北方向,但我还没有尝试过。

约翰

约翰

很棒的工具。如果您能将缩放功能更新到MATLAB的最新版本,那就太好了。

伊米

干得好!

易卜拉欣。

安德烈斯

一个好的多y轴工具-它可以更定制一点。使用linkzoom (//www.tatmou.com/matlabcentral/fileexchange/21414),以避免缩放修改,或使用Carlos Adrian的衍生(尚未测试)。

伊恩

嗨,好工具。
是否可以使一些附加轴使用对数刻度?

r . J

嗨。这是一个很棒的工具,我用它来创建一些更具体的东西,以满足我的需求,所以感谢你的想法。我想知道是否有人解决了图例的问题,我只能在图例的左边加上条目的数量。

阿米尔阿巴斯Zadpoor

做得好!谢谢

梅耶

我认为这是一个非常有用的工具,但我想我有一些问题,因为总是有错误消息,当我使用缩放功能。也许是因为我使用的是MatLab的新版本,但我不知道确切的原因,因为我得到这个软件才几天。也许有人能帮我。

王叮

一个非常有用的工具!谢谢

项羽赵

非常有用,非常感谢

伊恩霍华斯

很棒的工具。比plotyy更容易使用。我同意法比亚诺的观点,一个好的修改是添加多个水平标签。

beckali abdel

有用的,谢谢

帕特里克·塞尔卡

最好修复plotyy错误

粒入球busdraghi

好工具。这是太遗憾了,你不能添加x轴,这是我正在寻找的
法比亚诺

一个pohlmann.

我想绘制几条曲线,然后在第二个y轴上添加另一条曲线。尝试了plotyy和一些不同的工具,最后使用了这个。如果在添加第二个后没有弄乱原始轴,则可以正常工作。但是,与其他一些工具一样,它会随机影响子地块的大小,其中一些子地块会变细或变平,这意味着您需要手动调整大小。第二个轴也稍微向上移动。其他工具似乎也有类似的问题,所以我想知道这是否有其他原因(因此4*)。在X11上使用Matlab7.0.4。尽管如此,我还是得到了可用的图形。

Neelu D

最好在网站上发布添加二次轴或缩放。

安德烈Loginov

一个很好的工具,谢谢,
最好不要重新定义splot。m,用于绘制系统的频率和时间响应,
只需重命名为splot_u;.m并使用

约翰内斯·科索

一个非常棒的工具。这正是我想自己写的。谢谢你!

我只允许用户为相同的附加轴(addaxisplot第43行)选择后续绘图的颜色,而不是强制它们与轴相同的颜色。

MATLAB版本兼容性
创建R2010a
与任何版本兼容
平台的兼容性
窗户 马科斯 Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!