使用颜色时,大型matlab绘图不正确显示



我有大量的数据,我把它们绘制在一个条形图上。默认情况下,条形图都是蓝色的,没有空格。然而,当我尝试添加颜色时,白色线条出现在纯色块上。为什么会这样,有没有办法摆脱它们?

n=3000
mydata=2-abs(randn(n,1));
x=zeros(n,1);
x(1:2*n/10)=1;
x(2*n/10+1:n/2)=2;
x(n/2 +1:6*n/10)=3;
x(6*n/10 +1:8*n /10)=4;
x(8*n/10 :n)=5;
data=[x,mydata];
data=sortrows(data,[1,2])
bar=bar(data(:,2));
bar_child=get(bar,'Children');
set(bar_child,'CData',data(:,1));
set(gca,'ytick',[])
set(bar_child, 'EdgeColor', 'none')

如果你试着不运行最后4行

,你可以清楚地看到差异
 bar_child=get(bar,'Children');
 set(bar_child,'CData',data(:,1));
 set(gca,'ytick',[])
 set(bar_child, 'EdgeColor', 'none')

你是对的-当你运行上面没有最后四行,所有的栏是蓝色的,你看不到任何垂直的白线分开的情节。然而,如果你放大,你可以开始看到白线。所以他们在其他情节中也存在,只是不那么明显。

我不知道为什么会发生这种情况。当我调整多色图的大小时,会出现更多的垂直白线。

一个解决方法如下。由于默认的条宽为0.8,所以将其更改为1.0,以便条之间没有分隔

bar=bar(data(:,2),'BarWidth',1);

并重新运行所有代码行。当我这样做时,结果看起来很好(没有垂直的白线)。

试试这个,看看会发生什么!

最新更新