【发布时间】:2015-06-13 12:07:37
【问题描述】:
在编辑 .fig matlab 文件时,我想交换 x 和 y 轴而不用代码重绘绘图(不改变矢量数据的顺序)。我的问题是否存在解决方案?图形属性菜单中有一些选项吗?提前致谢。
【问题讨论】:
标签: matlab matlab-figure swap figure axes
在编辑 .fig matlab 文件时,我想交换 x 和 y 轴而不用代码重绘绘图(不改变矢量数据的顺序)。我的问题是否存在解决方案?图形属性菜单中有一些选项吗?提前致谢。
【问题讨论】:
标签: matlab matlab-figure swap figure axes
您可以直接访问每个地块的'XData' 和'YData' 属性并交换它们:
c = get(gca,'children'); %// get children of axes
for n = 1:numel(children); %// for each children
set(c(n),'XData',get(c(n),'YData'),'YData',get(c(n),'XData')); %// swap XData, YData
end
【讨论】:
除了 Luis 的回答之外,您还可以直接从属性检查器将当前坐标区 View 属性设置为 [90 -90]。
在编程上这等价于:
set(gca,'View',[90 -90])
注意:
感谢 Luis 的更正。使用[-90 90] 确实交换了轴,但是您需要反转 y 轴的方向。因此最好使用[90 -90]。
简单示例:
交换前:
然后在改变视图之后:
【讨论】:
[90 -90](不是[-90 90])。这样 x 轴向右(而不是向左)增加
[-90 90],需要反转 y 轴的方向。谢谢!并且 +1 以及您的解决方案非常方便。