bar() function broken for large data sets when bar color is changed?

7 visualizaciones (últimos 30 días)
BG
BG el 2 de Jun. de 2014
Respondida: BG el 5 de Jun. de 2014
Hi, I am using the bar() function to plot detailed histograms of 12-bit image data, e.g. using 4096 bins. But I am having some problems when I change the bar color. It seems that the bar plot gets corrupted when there are a large number of data points; but there is no problem if (a) the bar color is left as default and/or (b) fewer data points are used.
Here's an example that reproduces the problem (figure 2 is the corrupt one):
% Create a detailed histogram
x = 128*round(32*rand(1,100^2)); % <- Some random data with histogram gaps
[n,b] = hist(x,128*32); % 128*32=4096
figure;
bar(b,n); % This one looks ok, using default color
figure;
bar(b,n,'r'); % Should look the same as the first one (only red), but is an unreadable mess.
% Compare to plotting only a subset of the histogram:
subrange = 1:400;
figure;
bar(b(subrange),n(subrange));
figure;
bar(b(subrange),n(subrange),'r'); % Only 400 data points, looks fine!
Am I doing something wrong or is this a bug? I am using R2014a (8.3.0.532)
Thanks, BG
  8 comentarios
dpb
dpb el 2 de Jun. de 2014
Did you try resetting it to something other than 'OpenGL' on the corrupt ones to see if that had any bearing? Seems strange that it's different by default...
BG
BG el 5 de Jun. de 2014
Yep, if I change the renderer to 'painters' the corrupt figures are fixed.
I just updated my graphics drivers and it made no difference to the 'OpenGL' rendered figures, so perhaps it is still a Matlab bug? I'll file a bug report and let the maintainers have a look.

Iniciar sesión para comentar.

Respuesta aceptada

BG
BG el 5 de Jun. de 2014
I've been informed by MathWorks support that this is a hardware OpenGL issue. Updating the graphics driver may fix it, or running the command
opengl software
to switch to software rendering.
Updating the graphics drivers did not make a difference for me, but switching to software OpenGL rendering did.

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by