The question:
" why is our root number graph so choppy looking?"
makes me very suspicious and wonder about the same graph over Cremona's data... so let's do that.
Here we take all curves in Cremona's tables up to conductor 350K, including all curves in each isogeny class.
(Note: I'm using the parity of the rank to compute the root number, since I didn't easily see the root number in the database...)
CPU time: 5.53 s, Wall time: 12.48 s
1.0
CPU time: 116.69 s, Wall time: 116.74 s
76
Now the same on a log scale, except using a smaller base than 10 since our data only goes up to 350K...
Well that is disturbingly different than the picture in our paper...