Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用颜色时,大型matlab绘图无法正确显示_Matlab_Colors_Bar Chart - Fatal编程技术网

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

使用颜色时,大型matlab绘图无法正确显示,matlab,colors,bar-chart,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=sort

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

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);
并重新运行所有代码行。当我这样做时,结果看起来很好,没有垂直的白线

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