# How can I make a boxplot match at 0 with another plot?

2 views (last 30 days)
Isaac Elías on 14 Jan 2023
Commented: Isaac Elías on 21 Feb 2023
Hi
I'm having trouble making a boxplot match at the origin with another plot (colored lines). The first plot works just fine, but as the boxplot works with a categorical x axis, it shifts away from the actual origin and I just cant make it match back into place.
the cyclist on 14 Jan 2023
Edited: the cyclist on 14 Jan 2023
Here are a few things that would make it easier to help you. If you can do some or all of these things, you might have a better chance at getting a solution:
• Make a figure with just two panels: One that is how you want it, and one that is not how you want it
• Explain what you mean by "it shifts away from the actual origin". I'm not sure what "it" is (e.g. are you talking about the boxes, or the lines, or something else?). I don't know what the "actual origin" means.
Mainly, I don't know what exactly is supposed to "match at the origin". And even if I did understand that, it's probably not possible to give advice about how to fix that, without seeing your code, your data, or both.

A workaround to solve your problem is to call the boxplots with zero values in between your actual data. E.g.
plot([1 2 3 4 5 6 7],[ 9 8 7 6 5 4 3 ],'-o')
hold on
x1 = rand(50,1);
x2 = ones(50,1);
boxplot([0 ; 5*x1 ; 0 ;0; x1*4;0;x1*8],[1; 2*x2; 3 ;4; 5*x2;6;7*x2])
In this way, the boxplots are located exactly at the same location as the other plot.
##### 3 CommentsShow 1 older commentHide 1 older comment
that is better!
Isaac Elías on 21 Feb 2023
Thak you both!
This advice helped to make the boxes match my actual data for times above 0. Although I could´nt make the first box appear at time zero of the line plot (wich apparently, is not possible, as boxplot works with categorical data).