如何在MATLAB中调整棒的绝对宽度
我对MATLAB中带调整的条形图感到困惑,例如,当使用条形图时:如何在MATLAB中调整棒的绝对宽度,matlab,data-visualization,matlab-figure,Matlab,Data Visualization,Matlab Figure,我对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(
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)
我希望我已经清楚地解释了我的问题。bar函数的第三个参数似乎是相对宽度,它与第一个和第二个参数的输入大小相关。无论输入多少数据点,我都可以固定绝对条宽吗?或者有更好的函数来绘制这样的图形?非常感谢你的帮助 来自:
条(\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,宽度)
设置相对条宽,控制
在一个组内条的分离。将width
指定为标量值。
将此选项与中的任何输入参数组合一起使用
以前的语法
提供的示例如下:
将每个条的宽度设置为总可用空间的40%
每个酒吧
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,0.4)
所以底线是:宽度被指定为每个条的总可用空间的百分比。Yoru的问题来自这样一个事实:你有太多的酒吧,所以每个酒吧的可用空间很小。将宽度设置为可用空间的50%或5000%,只意味着每个钢筋将在相邻钢筋上大量重叠。因为你有这么多,中间的图看起来“合理”,因为我怀疑很多条是重叠的,很多条是零,所以你看不到它们。如上一个示例所示,如果将宽度设置为5000%,则发现将宽度设置为5000%看起来很可笑
因此,总结一下:减少条数,并将条宽指定在>0和1之间(1表示没有间隙,所有条相互接触)。user@am304关于
宽度的参数是正确的
代码中发生的情况是将x
值设置为randsample(0:0.0001:1,10)
如果将绘图的宽度设为1,则表示相邻的两条条形将以等间距的x
相互接触
在您的例子中,您有一个不规则的x
间距。
条的宽度由两个x
值(从randsample()
获得)之间的最小距离决定。有时候这个空间——因此你的酒吧的宽度——非常小。有时它的范围更广
将with更改为1
,并进行多个绘图。你会注意到,两个物体总是相互接触,没有一个重叠,其他物体之间都有空格。如果将宽度更改为50
,绘图有时会严重重叠(取决于randsample
的随机性),因为您的条形图比两个x值之间的最小宽度大50倍
对于您的randsample(0:0.0001:1100)
示例,两个值更可能彼此接近,因此增加宽度有助于您看到一些东西(因为条形图重叠)。使用随机x位置绘制东西的更好方法是使用。默认情况下,它从零线到基准面绘制一条线,用一个圆表示每个基准面。但这是可以修改的。例如:
stem(randsample(0:0.0001:1,100),randn(100,1), 'Marker','none', 'LineWidth',4)
创建与第二次尝试类似的绘图,但带有固定宽度(4点)的条形图。感谢您的快速帮助!我尝试过“宽度”参数,它在我问题的第二个示例中运行良好。但当输入数据大小改变(从100变为10)时,相同的“宽度”比例似乎太大了。在我的项目中,我无法手动调整“宽度”,因此无论我输入多少个数据点,我都想固定条的宽度。您的答案非常有用。条形函数中的“宽度”参数相对于输入数组中元素之间的最小距离x.SAMPLE_NUM=4;钢筋宽度=0.005;x=随机样本(0:0.00001:1,样本数量);y=随机数(样本数,1);x_排序=排序(x);minDis=min(x_排序(2:end)-x_排序(1:end-1));scaleRatio=条形宽度/minDis;棒(x,y,刻度);xlim([0,1]);此脚本可以生成由bar_width设置的特定宽度的条形图,无论SAMPLE_NUM如何更改