首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动选择条形图前面散点图的x个位置

自动选择条形图前面散点图的x个位置
EN

Stack Overflow用户
提问于 2017-06-20 21:59:31
回答 1查看 587关注 0票数 1

我想要一个算法,在条形图前面组织一个二维的点云,这样观众就可以很容易地看到数据的传播。点的y位置需要与数据的值相等/缩放/成正比,但x位置并不重要,将由算法决定。我认为一个好的策略是尽量减少各点之间的重叠,并将点集中起来。

下面是这样一个没有组织要点的阴谋的例子:

我用MATLAB生成前面有点的条形图,但我只对选择点的x位置值的最佳方法感兴趣。

之后,我在中手工组织了这些要点,这很费时.有什么建议吗?这是一个已经解决的问题的子问题吗?这种情节叫什么?

对于高样本量,我想像下面这样的东西会比点云更好。

我认为,从数学上讲,从y-值的数组开始,它将最大化每个元素与其他元素之间的差值之和,通过重新排列数组中元素的顺序,按元素之间的距离进行反向缩放。

下面是我用来生成图形的MATLAB代码:

代码语言:javascript
运行
复制
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])
EN

回答 1

Stack Overflow用户

发布于 2017-06-21 06:38:21

这里有一种方法可以根据分组到(直方图)箱来确定x位置.结果类似于https://stackoverflow.com/a/1934882/4720018中的绘图,但保留了原始的y-值。为了方便起见,对点进行排序,但可以使用bin_index按外观顺序显示它们。这是否是选择x坐标的“最佳方式”取决于您试图实现什么。

代码语言:javascript
运行
复制
% Create some dummy data
dummy_data_y = 1+0.1*randn(10,3);

% Create bar plot (assuming you are interested in the mean)
bar_obj = bar(mean(dummy_data_y));

% Obtain data size info
n = size(dummy_data_y, 2);

% Algorithm that creates an x vector for each data column
sorted_data_y = sort(dummy_data_y, 'ascend'); % for convenience
number_of_bins = 5;
for j=1:n
    % Get histogram information
    [bin_count, ~, bin_index] = histcounts(sorted_data_y(:, j), number_of_bins);

    % Create x-location data for current column
    xj = [];
    for k = 1:number_of_bins
        xj = [xj 0:bin_count(k)-1];
    end

    % Collect x locations per column, scale and translate
    sorted_data_x(:, j) = j + (xj-(bin_count(bin_index)-1)/2)'/...
                              max(bin_count)*bar_obj.BarWidth;
end

% Plot the individual data points
line(sorted_data_x, sorted_data_y, 'linestyle', 'none', 'marker', '.', 'color', 'r')  

这是否是显示数据的好方法仍有待讨论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44663702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档