【问题标题】:Large matlab plot doesnt display properly when using colours使用颜色时,大型 matlab 绘图无法正确显示
【发布时间】:2014-08-11 04:07:58
【问题描述】:

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

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

【问题讨论】:

    标签: matlab colors bar-chart


    【解决方案1】:

    你是对的 - 当你在没有最后四行的情况下运行上面的代码时,所有的条都是蓝色的,你看不到任何垂直的白线在图中分开。但是,如果放大,您可以开始看到白线。所以它们存在于其他情节中,只是不那么引人注目。

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2019-08-22
      • 2014-09-22
      • 2014-06-08
      • 2014-12-03
      相关资源
      最近更新 更多