草庐IT

Matlab 绘制竖线(直线),固定组合图中子图位置, Matlab绘制小间距组合图方法,设置图片不显示直接保存

ciciph 2023-04-12 原文

MAtlab 绘制竖线,组合图中子图位置确定, Matlab绘制小间距组合图方法,设置图片不显示直接保存

一、 Matlab 绘制竖线

	a1 = find(T == min(T((T - cut1 / 1e3) > 0)));
    b1 = find(T == min(T((T - (cut1 + 250) / 1e3) > 0)));
    data1 = StrainTemp(a1:b1);
    a = find(T == min(T((T - cut2 / 1e3) > 0)));
    b = find(T == min(T((T - (cut2 + 250) / 1e3) > 0)));
    data2 = StrainTemp(a:b);
    
	plot(T, 1e9*squeeze(Strain(n, 1, :)), 'linewidth', 1.5);
	hold on; plot([T(a1), T(a1)], [top, dow], 'k-.')
	hold on; plot([T(b1), T(b1)], [top, dow], 'k-.')
	hold on; plot([T(a), T(a)], [top, dow], 'r-.')
	hold on; plot([T(b), T(b)], [top, dow], 'r-.')
	xlabel('Time (s)', 'FontName', 'Times New Roman', 'FontSize', 14);
	ylabel('Strain (n\epsilon)', 'FontName', 'Times New Roman', 'FontSize', 14);
	set(gca, 'FontName', 'Times New Roman', 'FontSize', 14);

二、确定子图在框图中的位置

  1. subolot绘制2*3草图,大致确定子图位置

  2. 手动调整子图在匡图中的位置

  3. 如果只需要一张图,结束;如果需要批量绘制类似框图,点击编辑–>图窗属性–>位置

  4. 选择任意位置信息即可;例如获取InnerPosition的值,代码中加入subplot('position', [0.05125, 0.301615, 0.313125, 0.367274]);即可。

  5. 完整代码如下:

 	h1 = figure(n);
    set(h1, 'Position', [10, 10, 1600, 900]);  % 设置图框大小
    subplot(2, 3, 1);
    subplot('position', [0.05125, 0.301615, 0.313125, 0.367274]); % 该子图在图框的位置
    plot(T, 1e9*squeeze(Strain(n, 1, :)), 'linewidth', 1.5);
    hold on; plot([T(a1), T(a1)], [top, dow], 'k-.')
    hold on; plot([T(b1), T(b1)], [top, dow], 'k-.')
    hold on; plot([T(a), T(a)], [top, dow], 'r-.')
    hold on; plot([T(b), T(b)], [top, dow], 'r-.')
    xlabel('Time (s)', 'FontName', 'Times New Roman', 'FontSize', 14);
    ylabel('Strain (n\epsilon)', 'FontName', 'Times New Roman', 'FontSize', 14);
    set(gca, 'FontName', 'Times New Roman', 'FontSize', 14);

    subplot(2, 3, 2);
    subplot('position', [0.4102, 0.5250, 0.2128, 0.3412]); % 该子图在图框的位置
    plot(T*1e3, 1e9*squeeze(Strain(n, 1, :)), 'linewidth', 1.5);
    xlabel('Time (ms)', 'FontName', 'Times New Roman', 'FontSize', 14);
    ylabel('Strain (n\epsilon)', 'FontName', 'Times New Roman', 'FontSize', 14);
    set(gca, 'FontName', 'Times New Roman', 'FontSize', 14);
    xlim([cut1, cut1 + 250])
    subplot(2, 3, 5);
    subplot('position', [0.4108, 0.11, 0.2128, 0.3412]);% 该子图在图框的位置
    plot(T*1e3, 1e9*squeeze(Strain(n, 1, :)), 'linewidth', 1.5);
    hold on;
    plot(T*1e3, 1e9*squeeze(Strain(n, 1, :)), 'linewidth', 1.5);
    xlabel('Time (ms)', 'FontName', 'Times New Roman', 'FontSize', 14);
    ylabel('Strain (n\epsilon)', 'FontName', 'Times New Roman', 'FontSize', 14);
    set(gca, 'FontName', 'Times New Roman', 'FontSize', 14);
    xlim([cut2, cut2 + 250])


    subplot(2, 3, 3);
    subplot('position', [0.6897, 0.2527, 0.2822, 0.4684]); % 该子图在图框的位置
    loglog(Freq1, Psd1, 'linewidth', 1.5)

    hold on; loglog(Freq2, Psd2, 'linewidth', 1.5)
    hold on; plot(fs_Strain, squeeze(PsdStrain(n, 1, Near_fs)), 'c*')
    xlim([10, max(Freq)])
    text(fs_Strain+2, PsdStrain(n, 1, Near_fs), ['(', num2str(fs_Strain), 'Hz)'], 'color', 'c');
    xlabel('Frequency (Hz)', 'FontName', 'Times New Roman', 'FontSize', 14);
    ylabel('Power spectrum of strain (\epsilon/Hz^{1/2})', 'FontName', 'Times New Roman', 'FontSize', 14);
    %     legend('','')
    set(gca, 'FontName', 'Times New Roman', 'FontSize', 14);
    saveas(h1, [PlotsFolder, 'Noise', Files(n).name(1:end-8), '.png'], 'png');

三、 Matlab绘制小间距组合图方法

假设绘制2*2组合图,使用tiledlayout()函数。
Example

rn = 2;  % The number of rows
cn = 2;  % The number of columns
figure;
ha = tiledlayout(rn,cn,'TileSpacing','Compact','Padding','Compact');

X=[0	5	10	15	20 25 30 35];
Y=[11.6468	5.1099	3.326	2.3581	2.1535	1.9456	1.916	1.931;
11.364	5.0842	3.5273	2.5558	1.9321	1.8705	1.8567	1.8674;
12.1578	4.8974	3.1736	2.4388	1.9552	2.0668	1.8699	1.6778;
10.6016	5.0739	3.2126	2.3368	2.007	1.9236	1.8906	1.8702];

nexttile
plot(X,Y(1,:),'ko-','linewidth',linewidth1)
nexttile
plot(X,Y(2,:),'bo-','linewidth',linewidth1)
nexttile
plot(X,Y(3,:),'co-','linewidth',linewidth1)
nexttile
plot(X,Y(4,:),'ro-','linewidth',linewidth1)

设置tiledlayout(?行数,?列数,'TileSpacing','Compact','Padding','Compact');后的间距实例


不做tiledlayout()设置时的间距示例:

四、设置图片不显示直接保存

set(0,'DefaultFigureVisible','on');
set(0,'DefaultFigureVisible','off');

有关Matlab 绘制竖线(直线),固定组合图中子图位置, Matlab绘制小间距组合图方法,设置图片不显示直接保存的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby-openid:执行发现时未设置@socket - 2

    我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass

  3. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  4. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  5. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  6. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  7. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  8. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  9. objective-c - 在设置 Cocoa Pods 和安装 Ruby 更新时出错 - 2

    我正在尝试为我的iOS应用程序设置cocoapods但是当我执行命令时:sudogemupdate--system我收到错误消息:当前已安装最新版本。中止。当我进入cocoapods的下一步时:sudogeminstallcocoapods我在MacOS10.8.5上遇到错误:ERROR:Errorinstallingcocoapods:cocoapods-trunkrequiresRubyversion>=2.0.0.我在MacOS10.9.4上尝试了同样的操作,但出现错误:ERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:U

  10. ruby - 在 Ruby 中将整数格式化为固定长度的字符串 - 2

    有没有一种简单的方法可以将给定的整数格式化为具有固定长度和前导零的字符串?#convertnumberstostringsoffixedlength3[1,12,123,1234].map{|e|???}=>["001","012","123","234"]我找到了解决方案,但也许还有更聪明的方法。format('%03d',e)[-3..-1] 最佳答案 如何使用%1000而不是进行字符串操作来获取最后三位数字?[1,12,123,1234].map{|e|format('%03d',e%1000)}更新:根据theTinMan的

随机推荐