Boxplot for both x and y axis with different box widths.
    15 views (last 30 days)
  
       Show older comments
    
    Gechang Cao
 on 30 Apr 2021
  
    
    
    
    
    Commented: Benjamin Kraus
    
 on 19 Aug 2024
            How can we make a boxplot like the one below for both x and y data (the box widths of each group that are x-data related are different). I tried boxplot(X,Y, group) but it did not work. 

4 Comments
  Adam Danz
    
      
 on 30 Apr 2021
				
      Edited: Adam Danz
    
      
 on 30 Apr 2021
  
			I missed that since BoxWidth is not mentioned on the documentation page for boxchart, however it is listed in the properties page.  
Thanks, Benjamin.
Accepted Answer
  Benjamin Kraus
    
 on 30 Apr 2021
        
      Edited: Benjamin Kraus
    
 on 30 Apr 2021
  
      The boxplot command creates a group of lines, so if you wanted to adjust the box widths you would need to manually adjust the XData properties on each line to move them to the desired locations.
The better alternative is to use the new boxchart command. The object created by the the boxchart command has a BoxWidth property, but I suspect you won't need it, because even when you specify x values, the boxes created by the boxchart command have uniform widths.
boxchart(randn(1000,1), 'BoxWidth', 0.3);
or
boxchart(randi(10,1000,1),randn(1000,1));
4 Comments
  Adam Danz
    
      
 on 30 Apr 2021
				Thanks for the explanation, Benjamin. 
I wonder what the logic is in converting numeric inputs to categorical under one syntax but not the other.  
More Answers (1)
  markus tripolt
 on 18 Aug 2024
        Hi all,
I have a additional question. Is there a function to set the box width according to the number of data points automatecally, or is the only way to calc the percentage per hand typ it to the width vector?
Thanks Markus
1 Comment
  Benjamin Kraus
    
 on 19 Aug 2024
				@markus tripolt: If you have a new question, your best bet is to post a new question to MATLAB Answers, rather than adding an "answer" to an existing question.
There is no method to automatically set the box width based on the number of data points. I'm not sure how you would use the number of data points to calculate the box widths.
If you post a new question, can you clarify how you want to convert the "number of data points" into the box width"? In addition, please clarify whether you are referring to boxchart or boxplot, because the answers will be very different between the two.
See Also
Categories
				Find more on Data Distribution Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




