文件交换

图像缩略图

TECICE_SUBPLOT(NH,NW,GAP,MARG_H,MARG_W)

版本1.1.0.0(2.03 kB) Pekka Kumpulainen.
使用轴凹陷填充图形,可轻松可调节边距和轴之间的间隙。

270下载

更新2016年3月3日

查看版本历史记录

查看许可协议

编者按:流行文件2019年

此文件被选为Matlab Central挑选本周

子图倾向于在轴周围留下很多空的空间。TECICE_SUBPLOT允许调节轴之间的间距以及轴周围的边缘。
例如:
[ha,pos] = circe_subplot(3,2,[01 .03],[。01],[。01 .01])
对于II = 1:6;轴(ha (ii));(二)情节(randn(10日);结束
集(哈(1:4),‘XTickLabel’,”);集(哈,‘YTickLabel’,”)

引用

Pekka Kumpulainen(2021年)。TECICE_SUBPLOT(NH,NW,GAP,MARG_H,MARG_W)(//www.tatmou.com/matlabcentral/fileexchange/27991-tight_subplot-nh-nw-gap-marg_h-marg_w),Matlab中央文件兑换。检索到

评论和评级(140.

Sergio Yanez-Pagans

这应该包括在描述中:

[ha,pos] = city_subplot(行,列,[vspace_between_plots hspace_between_plots],[bottom_margin top_margin],[left_margin right_margin]);

希望能帮助到你!

罗宾现金

heyonjun李

你是我的救星。

景ci neo

工作非常好!

Yuri Antonacci.

维多利亚荷兰

嗨,我正在尝试重新排序matlab用于一个小块的区域绘图的颜色,而且我在尝试使用此函数拧紧我的子图之前我没有得到的集合功能。我需要添加什么,以使其工作?

>套(GCA,'ColorOrder',翻转大学家,'NextPlot','replateChildren')

谢谢!

NicolásGonzálezMeneses

非常有用!帮助我格式化我的论文的一些情节,由默认的副情节渲染非常小。

奥马拉德

亚瑟Chavignon

大卫博恩

很好,很有用的!

王文王

Dominika Thiede.

我有一个2x1的子图我想让第二个子图的高是第一个子图高的1/3。副图之间的距离不应改变。这有可能吗?

Zeynab Mousavikhamene.

Edmund Pickering.

亲爱的Developper,

好工作!这是一个很好的函数,您可以绘制几个图来更好地进行比较。

谢谢你的共享!

Aleix巴黎

乔纳珍珠

这是惊人的!MATLAB给出警告“称为轴(h)在一个循环中可以缓慢。”有没有办法避免调用坐标轴?

Laurent Jalabert.

MMM ...用21个子彩杆,似乎有一些麻烦。请尝试以下代码:

ha = city_subplot(3,7,[01 .03],[。01],[。01 .01])
For ii = 1:21;轴(ha (ii));(二)情节(randn(10日);结束
集(哈(1:4),‘XTickLabel’,”);集(哈,‘YTickLabel’,”)

马特论坛id

skliuod.

马丁•穆勒

彼得蔡

Riccardo Scandroglio.

约翰

亲爱的Pekka,假设3行和2个核糖的经典子图形,您如何设置某种:
子图(3,2,[1:2])????

不可能把一个数字跨越到垂直或水平的两个连续的面板上吗?

非常感谢您的评论,显然是为了您的好贡献。

kaushik sampath.

Vadym Faryna.

小林

圣地亚哥Rodriguez.

兴王勇

Ethan Kyzivat

Jérômebaranger.

正是我需要的,非常感谢。

杰克

像魅力一样工作!感谢分享

Sia谢

丹尼尔Broullon

尼科拉汉森

Sezen OnoL.

兴轩王

丹尼艾伦

Dimitrij Chudinzow.

Marc Fivaz.

ant0nis.

锡岛胡

奥利弗保罗

安德里亚·詹尼

易于使用!问:我的一些次要情节不会显示当面板是紧密的(例如,间隙= 0)。我可以通过增加间隙或沿边缘的边距来解决这个问题。这是一个可以解决的bug吗?或者其他人有过这样的经历,知道一个简单快速的解决方案吗?

赵红龙

非常感谢您与此功能共享!

安德斯伯格

城市wünsch

请注意,有时划分的标签使用此功能删除,如果希望它们可靠地使用例如可靠地打印。export_fig,您必须打电话:
set(gca,'xticklabel',cellstr(num2str(get(gca,'xtick')'))))))
SET(GCA,'YTicklabel',CellStr(Num2str(GET(GCA,'YTick')')))))))
这似乎是唯一的解决方法,不会引起错误的问题!标签。小心!

王梦玲

伟大的功能!非常感谢!

zy汉

做得好。

绍兴黄

苏德米

Mehmet Emin Mumcuoglu

菲利普·科尔默斯

Pakorn Wongwaitayakornkul.

Gabriella Nyitrai.

Sara Molinari.

马赫迪Torabi

谢谢你的有用脚本。是否有任何方法可以使用此添加一个常用的x和y轴来添加一个常见的suplabel?使用其他应用程序提供额外的空间。

沙林伊斯兰教

你好。我是一个新手。我得把次要情节精简一下。请帮助我与我的代码附上以下。我不明白我如何使用上面的函数与我的代码。请帮助我。

%显示原始图像
image = imread('boardday.jpg');
%读取彩色图像并将其转换为灰度级图像
myimage = rgb2gray(图像);
数字;
子图(2,1,1);
imshow(图片);标题({'原始';'图像'});
子图(2,1,2);
imshow(myimage);标题({'灰度';'图像'});

克里斯人

帝王巴拉赞

Victor Hugo Souza.

非常有用的功能!恭喜。

Punnag Chatterjee.

鲍勃达

蒙耀朗

非常简洁的计算非常有用。

彼得戈尔森

伟大的工具!非常感谢你

希瑟·米勒

田兰

Yochai Blau.

伟大的功能。谢谢!

亚当Danz

这种方法直观且易于使用。我只希望XTicklabel和Yticklabel创建轴后不空。要将它们重新打开,您应该在每个轴上调用它:

设置(h,'xticklabelmode','auto')
设置(h,'yticklabelmode','auto')

长九他

Georg Wiora.

伊曼纽尔老板

约翰马丁内斯

Merci Pout Potre贡献!;)

Roxana Stefanescu.

这是一个很好的功能!非常感谢你的帖子!:-)

Sebastian Kukla.

@megan fowler.
您可以使用set和get的组合。这对我来说很有效。
OriginalSize = get(gca,'位置');
cb = colorbar;
集(gca,“位置”,originalSize);

谢谢!

梅根福勒

这非常有帮助!我不清楚的一个问题是如何将彩色杆添加到一个子图,而无需拧紧与图中所有其他面板的对齐 - 是此目的?

乔纳斯斯坦

谢谢你。PS:';'在三个If-Line后面是不必要的。

如果磁性(间隙)== 1;
......

胸围

真的很有用,谢谢!

格罗兹戈斯刀

先生

非常感谢作者提供的函数命令,非常有用!(非常感谢您的这个代码,对我很有帮助!)

乔纳森弯曲

这真的让我的论文工作很好地聚集在一起。我用过了数百次,欣赏它很大!现在一个问题现在我正在使用函数来生成一些不同的绘图:是否可以指定两个子图的底部比顶部占据了数字区域的底部?IE。顶部图会有500像素,高度和底部200?干杯。

莫卡

Abehrooz.

格雷加

肖恩米卡拉

何塞梅贾

安德鲁钻石

很好,但我必须添加Shift参数,以阻止左侧的刻度标签(如下,在下面的“偏置”参数是一个新的2个元素向量输入arg并刚添加到该位置如下

“位置”,[PX + BIAS(2)PY +偏置(1)AXW AXH],......

我想完全自动居中(不是我知道偏望的顶部)很高兴,但我真的很高兴你写了这篇文章。谢谢。

Pekka Kumpulainen.

此函数不遵循子图的默认语法,因为这不是子图,但另一个功能。第三个输入参数是轴之间的间隙。不是轴的数量,以设置为子图中的数字的“Currentax”。请参阅帮助以获取输入参数的描述。
似乎在FEX中是一个古代版本,我更新了一个MRE最近的版本,这使得彩色杆和其他功能更加容易实现顶部,这改变了现有轴的位置。

sl

讨论这里的子图中的问题http://stackoverflow.com/q/35770961/54964讨论了具有示例和子图的第3个参数的Colorbars。

sl

通过省略第三个参数,不遵循子图的默认语法。与Colorbars失败。

sl

桑树儿子

完美的!谢谢!

Junia Josephine D.

K E.

你可以在这里找到circlefig.m,//www.tatmou.com/matlabcentral/fileexchange/34055-tightfig.

pingfanyu

未定义的功能或变量'cityfig'。
为什么我遇到这个问题,我该怎么办?

这是我遇到过的最有用的FEX贡献之一。谢谢你的努力!

阿什利张

优秀的功能!
但我有一个问题。当我绘制奇数个子图时,比如7个图排列成4*2,总是有一个空白图我不能删除,即使我删除了ha中的最后一个值。
任何人都有任何想法来解决它吗?

*问题修复了设置轴,XColor和YColorthe的最后一个plot不可见。

次要情节(ha (8));集(gca,‘颜色’,‘没有’,‘XColor’,‘没有’,‘YColor’,‘没有’);

Naveen Gowdayyanadoddi.

优秀的功能。适合我。

Tero

Feedmeimatroll.

优秀的功能,谢谢。我遗漏了一件事:是否存在连接不同副情节的方法,如副情节(4,2,[1,3,5])?

哈迪

培特

TNX,很棒的工作

Enrico Fonda.

丽娜

Panagiotis Papagiannopoulos.

这个文件真的帮助了我!但是我有一个问题。我想在每个子图中设置x,y轴的固定限制。例如:(轴([0 700-500 10000]))。我试图做到但没有结果。任何建议我如何这样做?

ahmed fasih.

b

Felipe G. Nevinski.

除了内部间隙之外,它还提供了可变的外部边界,这是很棒的。我希望它能够支持非对称绘图,即一金宝app个面板跨多个行/列。

Lucas Koorneef.

菲利普瓦伦西亚

很好,非常方便,但默认情况下,我更喜欢留下我的刻度标签......其他想要这可能只是mod文件。只需在内部循环中删除它,在那里它将其删除...即将删除......即

对于ix = 1:Nw
2 = 2 + 1;
ha(ii) =轴('Units','normalized',…
'位置',[px py axw axh]);
Px = PX + AXW + GAP(2);
结束

托马斯

gal haspel.

有用,并做了它所要求的

Giovanni.

这是一个很棒的剧本。我正在遇到一个让我的蜱虫消失的错误。这是一个样本:

图(“位置”,[100 100 100 100 600])
ha = city_subplot(1,3,[。02,.02],[。12,.08],[。1,.02]);
对于a = ha'
持有(a,'全部')
盒子(a,'开')
XLIM(A,[。1 10])
ylim(a,[ - 90 10])
结束
set(ha,'xscale','log','fontsize',fontsize,'ytick', - 100:10:20,'yticklabel',[],'Yminortick','On')
SET(HA(1),'YTicklabel', - 100:10:20)
%1
散射(HA(1),x11,10 * log10(y11),30,[0 .5 0],'x');
散射(HA(1),X12,10 * log10(Y12),30,[0 0 1],'填充');
%2
散射(HA(2),x21,10 * log10(y21),30,[0 .5 0],'x');
散射(HA(2),X22,10 * log10(Y22),30,[0 0 1],'填充');
%3.
散射(ha (3) x31 10 * log10 (y31)、30日(0 5 0),“x”);
散射(ha(3),x32,10 * log10(y32),30,[0 0 1],'填充');

我希望看到xticks在.1,1和10,但在我的系统上,他们只是消失。如果我手动尝试并添加它们,则日志比例搞砸了,所以必须另一种方式。我正在使用matlab r2012a。
谢谢!

麦金

真的很棒的文件,谢谢。在新Matlab用户更好地学习使用此文件的评论中,可能是一个备份的例子。

如果我可以在这里问他们,我有两个问题......

1.如何在y轴上加数?(当然只在最右边)

2.如何编写X&Y标签?(仅适用于所有轴的)

先谢谢你。

AlexPapi.

凯文克莱塔

非常好,需要这样的东西,而且很容易使用。

江民张

我什么也做不了,但是给了五星!绝对比MathWorks更聪明!

Aditya

嘿,

伟大的功能。在我花费大部分时间写作类似的功能后,我遇到了它。正如有些人在上面所说,我希望使用多行/列跨越子图的功能。所以我包括以下功能中的功能:

http://www.mathwands.com/matlabcentral/fileexchange/35464-spaceplots.

只是以为它可能对一些有用。

卡尔

我是丹说的。跨越多个列/行非常有用。例如:
哈= tight_subplot (2, 2, 0.1, 0.1, 0.1)
轴(ha(1));情节(x1, y1);
轴(HA(2));图(X2,Y2);
轴(HA([3 4]))图(X3,Y3);

rakesh chalasani.

ravi.

非常感谢你的剧本。

Matthew Schroeder.

做得好。很高兴能够让子图填充UIPanel而不是整个数字(不在GUI中播放)。

Matthew Schroeder.

Carlos Baiz.

很好的功能,还有一个我来依靠。如果轴可能会使用内置子图可以执行多列/行,则会很好。否则,很棒。

布伦特Boehlert.

oops - 不知道评级提交意味着提交。优秀的功能为我节省了大量的时间,必须通过GIS生成图形。没有clue为什么subplot命令有这个问题,但谢谢你解决它!

布伦特Boehlert.

科斯去了

艾纳Olason

优秀的小脚本!非常感谢!

不过,我还是有一个建议:在这个例子中,与其说是“轴(ha(ii));”,不如说是“副情节(ha(ii));”使用坐标轴可以让我在同时设置两个情节时产生不可预测的行为。我(几乎总是)将坐标轴绘制在右边,无论我多少次尝试给出“坐标轴(ha(1))”命令(或者“坐标轴(ha(2))”)。用副图解决了这个问题。不知道为什么…

托马斯

良好的工作。我需要在循环中创建具有多个子图的多个绘图。由于结果和Matlab在重新启动之前,Matlab遇到了空白地块。甚至绘图(1:100,rand(1,100))将返回一个空的数字。无论如何,我返回了轴位置矩阵“HA”的值,并删除了内部轴命令。当我准备在其中一个图中绘制我正在为我调用的特定子图层位置创建:

图(H4);
子图(“位置”,HA4(FC4).POS);p = plot(1:100,rand(1,100));

其中HA4(FC4).PO对应于具有手柄“H4”的图中的FC4'th子图位置。

亚历山大

谢谢你的贡献。我非常喜欢它。
在我看来,输入检查应该是这样的:
如果nargin <3 ||谬误(差距);GAP = .02;结束
如果nargin<4 || isempty(marg_h);marg_h = . 05;结束
如果nargin <5 ||isempty(marg_w);marg_w = .05;结束

因此,您可以修改MARG_W并为其他参数占用默认值。
city_subplot(nrows,ncolumns,[],[],[.1。05]);

亚历克斯

我不知道Mathworks用子图案的思考是什么......这很好

Matlab释放兼容性
用R2010A创建
兼容任何释放
平台的兼容性
视窗 苹果系统 Linux

社区宝藏狩猎

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

开始狩猎!