【问题标题】:plot a bar chart of data grouped by categories in matlab在matlab中绘制按类别分组的数据条形图
【发布时间】:2014-05-07 02:51:39
【问题描述】:

在matlab中,是否可以绘制按类别分组的数据条形图?

例如,假设我导入了一个包含以下列数据的 excel 文件:

Year    Month    Species    Count
2005      2       spider      5
2005      4      mosquito     8
2006      1       midge       4
2008      4       spider      3

该图的 x 轴(月和年)应该有时间,y 轴应该有计数。应在相应的时间点绘制分组条形图(不同物种不同的颜色)(注意当Count=0时有缺失的时间点)。

【问题讨论】:

  • 有可能 (mathworks.com.au/help/matlab/ref/bar.html) 但我们需要更多信息才能提供任何具体建议。
  • 谢谢@David - 还有什么其他信息?大约有 5 种不同的物种,时间范围在 2004 年到 2012 年之间。谢谢。
  • 数据保存方式的小样本会有所帮助,无论是矩阵、元胞数组等。
  • 好的@David,对不起!将(非常大的)excel 文件导入 Matlab 后,我现在有四个列向量,分别称为“年”、“月”、“物种”和“计数”。

标签: matlab plot bar-chart


【解决方案1】:

这是一个示例,其中包含一些随机生成的数据。您必须检查矩阵 D 并查看它的结构是否与您的数据相同。

clear,clc,close
Y=[2013:1:2014];
for i=1:length(Y)
    for j=1:12
        for k=1:3
            D(i,j,k)=randi(5)-1;
        end
    end
end

for i=1:3
    t=squeeze(D(:,:,i)).';
    M(:,i)=t(:).';
end
bar(M)

我假设您可以创建 D 与我所做的相同。您需要将Species 中的字符串转换为数字,例如:

Species={'spider';'midge';'mosquito';'spider'}
S=zeros(size(Species))
S(strcmp(Species,'spider'))=1
S(strcmp(Species,'midge'))=2
S(strcmp(Species,'mosquito'))=3

然后D=[Year Month S Count]


希望这个想法至少对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多