如何在Matlab中使用100x11数组绘制抖动图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Matlab中使用100x11数组绘制抖动图?相关的知识,希望对你有一定的参考价值。

我可以使用下面的代码绘制尺寸为100x11的图表

x = 0:0.1:1; plot(x,out(:,(x * 10)+1),'ko');

但我无法弄清楚如何为该数据绘制抖动图。

下面是我完整的Matlab代码,用于将数据保存到输出变量中,并尝试使用抖动图绘制输出数据。

clc;
close all;
clear all;

heads = 0;
flip_chance = 0.0;
weight = 0.0;
c = 2;
output = zeros(100,11);
for p = 0.1:0.1:1.0

    for i = 1:1:100

        heads = 0;
        flip_chance = 0.0;

        for j = 1:1:10
           weight = rand();
           flip_chance = (p*10)+weight;
           if flip_chance >= 0.5 && weight <= p
              heads = heads + 1; 
           end

        end
        %fprintf ("p : %f , heads : %d
 ", c, heads);
        output(i, c) = heads;

    end
     c = c+1;
end
x=0:0.1:1;
plot(x, output(:,(x*10)+1),'ko');

当我使用情节运行时,我的输出低于输出

enter image description here

我试图以下面的格式获得情节

enter image description here

答案

抖动图表示像您所做的散点图,但每个点的位置都会添加一些噪声。例如,您可以使用以下代码:

sz = size(output);
x = repmat(linspace(0,1,sz(2)),sz(1),1);
plot(x+0.06*rand(sz),output+0.6*rand(sz),'k.')

我正在使用x+0.06*rand(sz)因为x的增量为0.1,所以这给出了沿x轴的点间距的60%的点扩展。您可以根据自己的喜好更改0.06。与output+0.6*rand(sz)相同:0.6是间距的60%。

编辑

您发布的“目标”图仅在y轴上使用抖动。您将省略添加到x的随机值来完成此任务。它似乎也使用了很多抖动,在视觉上合并了不同y组的点。对于这样的图表,您可以将随机乘数设置为至少1,但我不推荐它。

以上是关于如何在Matlab中使用100x11数组绘制抖动图?的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB | 绘图复刻 | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加

虽然有点弱,matlab中如何绘制星座图

如何在 MATLAB 中为基于内容的图像检索绘制 Precision-Recall 图?

MATLAB | 如何用MATLAB绘制花里胡哨的山脊图

MATLAB | 全网唯一,使用MATLAB绘制精致的环形树状图

MATLAB | 全网唯一,使用MATLAB绘制精致的环形树状图