【问题标题】:missing graphs in subplot in matlabmatlab的子图中缺少图形
【发布时间】:2015-06-25 15:13:26
【问题描述】:

我有这样的代码;

figure;
    for a = 1:length(weekM')
        tday_cell = day_cell(week_cell == weekM(a));
        for b = 1:length(days)
            subplot(length(weekM'), 7, b);
            if strcmp(first_entranceM{a, b}, '0') 
                plot(peaks);
                l = [l; 0];
            else
                tms_cell = ms_cell(week_cell == weekM(a));
                ttms_cell = tms_cell(strcmp(tday_cell,days{b}));
                l = [l; ttms_cell];
                plot(ttms_cell);
            end
        end
    end

我想用 subplot(3,7,[1:2:3...]) 的 subplot 函数绘制图形。也就是说,我想绘制有 3 条线的图形,每条线上有 7 个图形。

但在我的情况下,它只显示第一行的最后一行,我看不到剩余的图表。

我确定绘制以前图表的数据没有丢失,但我不明白为什么缺少图表。

你能帮我解决这个问题吗?

【问题讨论】:

  • subplot(3,7,[1:2:3...]) 中的省略号到底是什么意思?编写subplot(3,7,[1:2:3]) 会在第一、第二和第三个网格位置上绘制一个轴,这听起来与您想要的相反。另外,当您说“线”时,您指的是通过调用 subplot 形成的线图或网格的行吗?
  • length(weekM') = 3 大概? ttms_cell的大小和变量类型是什么?
  • 您对subplot 的工作原理缺乏基本了解。我已将此帖子标记为与我不久前写的帖子重复。阅读它,您可以弄清楚为什么您的代码不起作用。提示:这是您的 subplot 通话中的 b 术语。
  • @rayryeng:我不认为这是链接问题的重复。 OP 不仅地址错误,而且需要解决他的问题,因为这不仅仅是更改 b
  • @Matt - 没错。 b 术语需要更改。我没有说b 需要调整......它确实需要完全改变:) 我个人只是在开始时放一个计数器,每次绘制一个情节时增加 1.. . 但是你的sub2ind 的东西也可以。我仍然会将其保留为副本,因为代码仍然缺乏对 subplot 工作原理的基本了解。

标签: matlab


【解决方案1】:

需要更改带有subplot-statement 的行。第一个论点是正确的。第二个参数代表列数,这里需要设置为 7,因为你有 7 天。最后一个参数是寻址子图的索引,需要在每次迭代中更改。

可以使用sub2ind-函数生成此索引,该函数根据下标计算索引。可以使用以下行代替您的:

subplot(length(weekM'),7,sub2ind([7,length(weekM')],b,a));

【讨论】:

    猜你喜欢
    • 2013-12-24
    • 2019-04-12
    • 2013-12-01
    • 1970-01-01
    • 2022-09-17
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2013-03-26
    相关资源
    最近更新 更多