【问题标题】:Plotting a graph row by row from a table using matlab (Instead of column)使用matlab从表中逐行绘制图形(而不是列)
【发布时间】:2014-05-28 03:47:20
【问题描述】:

我有一个如下所示的数据集,我想将它们绘制成图表。我在网上看到了几个图表示例,但是它们是逐列绘制的,并且数据源来自不同的矩阵文件。

我想要实现的是使用如下数据集在同一个图形上绘制多个图表。

我想要实现的最终产品是下图。有人可以指导或指出我正确的方向吗? C1990 代表 1990 年的碳排放量。

到目前为止,我能够绘制以下内容,但对数据源进行了很多更改,重新排列和执行转置操作。

【问题讨论】:

    标签: matlab graph plot axis-labels


    【解决方案1】:

    这是一个起点。

    data = rand(5, 20); // random data for five countries
    countries = {'Afghanistan', 'Argentina', 'Australia', 'Austria', 'Belgium'}; // cell array containing the names of the countries
    
    H = zeros(size(countries));
    
    hold on
    
    H = plot(data', 'Marker', '.', 'LineWidth', 1.0, 'MarkerSize', 16);
    
    legend(H, countries)
    

    输出:

    这回答了如何(按行)绘制多个图表的问题。要完善绘图,您只需使用图形和轴的不同属性即可。

    【讨论】:

    • 我一直收到错误**错误使用绘图无效的第一个数据参数**知道为什么会这样吗? combine = table(C1990Copy, C1991, C1992, C1993, C1994, C1995, C1996, C1997, C1998, C1999, C2000, C2001, C2002, C2003, C2004, C2005, C2006, C2007, C2008, C2009, C2010,... 'RowNames', Country); data = combine(5, 20); countries = {'Afghanistan', 'Argentina', 'Australia', 'Austria', 'Belgium'}; H = zeros(size(countries)); hold on H = plot('data', 'Marker', '.', 'LineWidth', 1.0, 'MarkerSize', 16); legend(H, countries)
    • 20也代表要放入的列数吗?
    • 请尝试删除data 之前的单引号,但保留其后的单引号,因为它会转置矩阵。是的,20 代表列数。
    • 我明白了。我添加了单引号,因为我得到了这个 Error using ' (line 396) Undefined function 'ctranspose' for input arguments of type 'table'。 这可能是我的表格的格式。你的是矩阵、单元格还是表格?
    • 是的。这是我的表格格式。显然它不接受表格中的数据。矩阵很好
    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    相关资源
    最近更新 更多