使用颜色时,大型matlab图表无法正确显示

时间:2014-06-20 11:49:54

标签: matlab colors bar-chart

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

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')

1 个答案:

答案 0 :(得分:0)

你是对的 - 当你在没有最后四行的情况下运行上面的所有条形图时,所有条形图都是蓝色的,你在图中看不到任何垂直的白线。但是,如果放大,则可以开始看到白线。所以他们在其他情节中,只是没有那么明显。

我不确定为什么会这样。当我调整多色图时,会出现更多垂直白线。

解决方法如下。由于默认条宽为0.8,因此将其更改为1.0,以使条之间没有分隔

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

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

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