【发布时间】:2023-04-06 15:15:01
【问题描述】:
我想要一种算法来组织条形图前面的二维点云,以便查看者可以轻松看到数据的分布。点的 y 位置需要与数据值相等/缩放/成比例,但 x 位置无关紧要,将由算法确定。我想一个好的策略是尽量减少点之间的重叠并将点居中。
这是一个没有组织点的绘图示例:
我使用 MATLAB 生成带有点前面的条形图,但我只对选择点的 x 位置值的最佳方法感兴趣。
之后我一直在 Adobe Illustrator 中手工整理要点,这很耗时。有什么建议吗?这是已经解决的问题的子问题吗?这种情节叫什么?
对于大样本量,我想像下面这样的东西会比一堆点更好。
我认为,从数学上讲,从一些 y 值数组开始,它会最大化每个元素与每个其他元素之间的差异之和,通过重新排列元素的顺序,与元素之间的距离成反比。数组。
这是我用来生成图形的 MATLAB 代码:
y = zeros(20,6);
yMean = zeros(1,6);
for i=1:6
y(:,i) = 5 + (8-5).*rand(20,1);
yMean(i) = mean(y(:,i));
end
figure
hold on
bar(yMean,0.5)
for i=1:6
x = linspace(i-0.3,i+0.3,20);
plot(x,y(:,i),'ro')
end
axis([0,7,0,10])
【问题讨论】:
-
像
errorbar这样的东西是我通常期望看到的一种表示数据方差(或“传播”)的方式,它可以是added to bar charts。跨度>
标签: algorithm matlab bar-chart visualization matlab-figure