I second phpChart . Used in the past to set an online report. It is very easy to create graphics quickly.
Here is a solution to your scenario using phpChart based on their online example - Axis Labels Rotated Text 2 Designations :
<?php $line = array(array('user', 12), array('admin', 3), array('user2', 1), array('user3', 1)); $pc = new C_PhpChartX(array($line),'user_chart'); $pc->add_plugins(array('canvasTextRenderer')); //set series $pc->add_series(array('renderer'=>'plugin::BarRenderer')); //set axes $pc->set_axes(array( 'xaxis' => array( 'renderer'=>'plugin::CategoryAxisRenderer', 'tickRenderer'=>'plugin::CanvasAxisTickRenderer'), 'yaxis' => array( 'autoscale'=>true, 'tickRenderer'=>'plugin::CanvasAxisTickRenderer') )); $pc->draw(800,500); ?>
Result: 
Changing the 6th row to PieRenderer gives you a pie chart.
<?php $line = array(array('user', 12), array('admin', 3), array('user2', 1), array('user3', 1)); $pc = new C_PhpChartX(array($line),'chart_1'); $pc->add_plugins(array('canvasTextRenderer')); //set series $pc->add_series(array('renderer'=>'plugin::PieRenderer')); //set axes $pc->set_series_default(array( 'renderer'=>'plugin::PieRenderer', 'rendererOptions'=>array('showDataLabels'=>true))); $pc->set_legend(array('show'=>true, 'rendererOptions'=> array('numberRows'=> 1), 'location'=> 's')); $pc->draw(800,500); ?>

Here's a great introduction to Codeproject I found: http://www.codeproject.com/Articles/604542/Creating-Interactive-HTML5-Graphs-in-PHP
source share