I have a voting contest and am displaying a chart of votes. To keep from discouraging voters who would be interested in voting for non-winning options, I want to compress the differences between column heights. The idea is to keep it from showing that one option is by and far in the lead.
This graph shows approximately the original data and the data as I have manipulated it with a simple formula:
I'm using a PHP script to manipulate the data but it shouldn't be too hard to read (hopefully):
foreach ($columns as $column)
{
// equalize
$offset = round($maxHeight * 2.0);
$height = ( ($height + $offset) / ( $maxHeight + $offset ) );
makeColumn($height);
}
What I would like to do is to pull the larger "outlying" values in closer together to make the competition tighter for the few top options:
Is there a way I can do this mathematically? Perhaps with a parabolic equation? I don't need PHP code for the answer - just an equation would be great.


Posted as an answer on the suggestion of the OP:
As long as you're being unethical about it, why not just manufacture numbers that make the competition seem as close as you want?