例如,在使用像这样的bar时,我对MATLAB中的调整条感到困惑。
bar(randsample(0:0.0001:1,100),randn(100,1))
条形图似乎太细了以至于外观不好。搜索帮助后,我可以使用如下代码:
bar(randsample(0:0.0001:1,100),randn(100,1),50)
似乎好多了。但是,如果我将样本编号从100更改为10,则相同的代码将无法工作。
bar(randsample(0:0.0001:1,10),randn(10,1),50)
我希望我已经清楚地解释了我的问题。条形函数的第三个参数似乎是相对宽度,它与第一个和第二个参数的输入大小相关。无论输入多少数据点,我都可以固定绝对条宽度吗?还是有一个更好的功能来绘制这样的数字?非常感谢您的帮助!
答案 0 :(得分:1)
用户@ am304正确使用width
参数
代码中发生的事情是,您为x
的结果设置了randsample(0:0.0001:1,10)
值
如果将图的宽度设置为1,则意味着彼此紧邻的2条线将以等间距的x
相互接触。
在您的情况下,您有不规则的x
间距。
条的宽度由两个x
值(从randsample()
得到的最小距离)确定。有时,此空间(以及条的宽度)很小。有时范围更广。
将with更改为1
并绘制多个图。您会注意到,两个始终相互接触,没有一个重叠,而其他两个之间都有空格。如果您将宽度更改为50
,则图将使某些主题重合(取决于randsample
的随机性),因为条形图的宽度是两个x值之间最小宽度的50倍。
在您的randsample(0:0.0001:1,100)
示例中,两个值彼此接近的可能性更大,因此增加宽度可以帮助您看到一些东西(因为条形重叠)。
答案 1 :(得分:0)
bar(___,width)
设置相对条形宽度,该宽度控制 组内的条形分隔。指定width
作为标量值。 将此选项与输入法中的任何输入参数组合一起使用 以前的语法。
提供的示例如下:
将每个栏的宽度设置为可用总空间的40% 每个栏。
y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(y,0.4)
因此底线是:宽度指定为每个条形可用总空间的百分比。 Yoru问题来自以下事实:您的酒吧太多了,因此每个酒吧的可用空间都很小。将宽度设置为可用空间的50%或5000%只是意味着每个条将在相邻条上完全重叠。因为您有这么多,所以中间图看起来“合理”,因为我怀疑很多小节重叠了,并且很多小节为零,所以您看不到它们。如上例所示,如果您将条形图合理化,那么将宽度设置为5000%看起来很荒谬。
因此,总结一下:减少条的数量,并在> 0和1之间指定条宽度(1为无间隙,所有条相互接触)。
答案 2 :(得分:0)
绘制带有x个随机位置的东西的更好方法是使用stem
。默认情况下,它从零线到基准线绘制一条线,并用圆圈代表每个基准线。但这可以修改。例如:
stem(randsample(0:0.0001:1,100),randn(100,1), 'Marker','none', 'LineWidth',4)
创建与您的第二次尝试相似的图,但是具有固定宽度的条形图(4个点)。