
Create floating bars, grouping each set of bars by a single month
    11 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Ali Afruzi
      
 el 5 de Mzo. de 2021
  
    
    
    
    
    Comentada: Star Strider
      
      
 el 6 de Mzo. de 2021
            Hi there,
I need to create floating bars like the picture below. I attached the data that is required to create the graph.
Each bar has minimum, mean, and maximum values and the bars are grouped for each month to show the results of 7 or more models.
Thanks!

0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 5 de Mzo. de 2021
        Esperiment with this: 
T1 = readtable('dummy_model_data.txt', 'HeaderLines',1);
T1.Properties.VariableNames = {'Model','Min','Max','Mean'};
BlueBars = [reshape([reshape(T1.Min, 7, []); nan(1,3)], 1,[]); reshape([reshape(T1.Mean, 7, []); nan(1,3)], 1,[])];
RedBars = [reshape([reshape(T1.Max, 7, []); nan(1,3)], 1,[]); reshape([reshape(T1.Mean, 7, []); nan(1,3)],1,[])];
Models = reshape([reshape(T1.Model, 7, []); cell(1,3)], [], 1);
figure
plot([1;1]*(1:size(BlueBars,2)), BlueBars, 'b', 'LineWidth',15)
hold on
plot([1;1]*(1:size(RedBars,2)), RedBars, 'r', 'LineWidth',15)
hold off
set(gca, 'XTick',(1:size(BlueBars,2)), 'XTickLabel',Models, 'XTickLabelRotation',90)
pos = get(gcf,'Position');
text(4:8:24, ones(1,3)*-80, compose('%s 2007', ['JAN';'MAR';'MAY']))
set(gcf, 'Position', pos+[0 -250 500 250])
producing: 

.
2 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

