Creating a more meaningful relationship of time-series data at the boundary of StatsD/Graphite is quite difficult because, as you alluded to in the question, the data (used for deriving the percentage) is only related by time and key.
That said, for this type of data I've set up "percentage graphs" using asPercent(). Like this:
asPercent(stats_counts.myapp.messages.{ignored,dropped,recycled},
stats_counts.myapp.messages.received)
You could also consider pushing this down into your application and performing the calculation where you can better relate the data and sending the data to Statsd as a gauge.