【问题标题】:Matlab: 3d bar plot over specified axesMatlab:指定轴上的 3d 条形图
【发布时间】:2011-03-03 20:18:27
【问题描述】:

你好 SOers: 搜索了一段时间后,我的问题仍然出现了答案:
我有一个像这样的数据文件:

x  y     z
10 100   30
10 500   90
10 600   200
30 200   30
90 120   300
90 130   30
90 200   60

在 matlab 中,我想在 (x, y) 上绘制 z,它们不是连续点。情节点应该是一个条形图。 但是 plot3() 似乎不支持 3d 条形图,
并且 bar3() 似乎不允许我指定我的 (x,y) 列。

那么如何得到这样稀疏的条形图呢?

非常感谢!

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以将值放入矩阵中,其中每个元素代表一个条形。您将元素设置为一个值,将所有其他元素设置为零。

    >> x = x./10    %I scaled the x and y values down by factor of 10
    
    
    x =
    
         1     1     1     3     9     9     9
    
    >> y = y./10
    
    y =
    
        10    50    60    20    12    13    20
    
    
    >> A = zeros(max(x),max(y));       %create Matrix of size 9x20
    >> for i = 1:length(x)
    A(x(i),y(i)) = z(i);               %populate the Matrix
    end
    >> bar3(A)
    >> 
    

    我相信您可以通过更改一些参数使绘图更漂亮,但这将是输出。

    【讨论】:

    • 太棒了!但是 x-y 平面上的颜色确实让人分心。如果它只根据条形的高度着色就好了。
    • 但问题是我的数据大多位于某个较大的值附近,如果我将它们除或减去它们的偏移量,那么在图中我看不到原始值。 Matlab 是否足够智能来处理这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多