如何在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');
当我使用情节运行时,我的输出低于输出
我试图以下面的格式获得情节
答案
抖动图表示像您所做的散点图,但每个点的位置都会添加一些噪声。例如,您可以使用以下代码:
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 中为基于内容的图像检索绘制 Precision-Recall 图?