http://vis.berkeley.edu/papers/banking/
It's hard to pick the right aspect ratio without knowing the data beforehand, but you could make some reasonable assumptions about how spiky the peaks are. Given those assumptions, you could choose a fixed-height (say, 400px), and then adjust the visible time range if you still want variable-width. This would allow the chart to increase in size without compromising the aspect ratio.
Alternatively, you could use a responsive layout and just choose between two or three fixed sizes.
Also, d3.js is a pleasure to work with. Really appreciate all the work you've put into it.
Quick question: how did you obtain the real-time metric "# of tweets per hour"? Are you sampling to determine an estimate using the Search API, or do you have access to a proverbial "firehose"?
* When events unfold, twitter users predictably react.
* Some events are bigger than others.