【问题标题】:Animating circle to increase and decrease in size over a period of time - matlab动画圈在一段时间内增加和减少的大小 - matlab
【发布时间】:2014-04-22 01:54:47
【问题描述】:

我想创建一个简单的可视化,其中圆圈(国家)将随时间增加/减少(基于变量)。

如何使用我当前的数据集在 matlab 上完成?我希望每个圆圈代表一个国家,圆圈的大小将由该特定年份的值决定。 C1990 代表 1990 年

无论如何可以指出我正确的方向或让我开始这样做吗?

谢谢

【问题讨论】:

    标签: matlab animation graph plot data-visualization


    【解决方案1】:

    这里有两种可能的开始方式,使用scatter(注意圆圈的面积将与10*D 的值成正比,而不是半径或直径)

    close all
    figure(1)
    D=rand(10,10)
    Cx=1:10;
    Cy=Cx;
    for i=1:length(D(:,2))
        scatter(Cx,Cy,(10*D(:,i)))
        drawnow
        pause(.1)
    end
    

    或手动绘制圆,圆的半径对应D

    figure(2)
    D=rand(10,10)
    Cx=1:10;
    Cy=Cx;
    phi=0:pi/100:2*pi;
    for i=1:length(D(:,2))
        for k=1:length(Cx)
            r=D(k,i);
            plot(Cx(k)+r*cos(phi),Cy(k)+r*sin(phi))
            hold on
        end
        drawnow
        pause(.1)
        hold off
    end
    

    (无论哪种情况,您都可以让圆的面积或半径与D 成正比)

    【讨论】:

    • 我可以制作一个动画,让圆圈随着时间的推移而增加/减少吗?
    • 这些确实会随着时间而改变,取决于D中的值
    • 我试图将我的数据包含到您向我展示的第二个样本中,但结果非常奇怪。 D=e(1:54, 1:21);我已经替换了这部分代码来调用我的数据,54代表54个国家,21代表年份。 54x21 矩阵。是否可以复制我上面的东西?
    • D(i,j) 应该在j 时包含有关国家/地区i 的数据,如果有帮助的话。您应该可以将我的D 替换为您的数据,并修改Cx 和Cy 使它们成为圆心位置的向量,并且每个国家都应该有一个。跨度>
    猜你喜欢
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多