نحوه رسم چارت و نمودار آماری با php و mysql

همانطور که می دانیم گستره استفاده از زبان برنامه نویسی php در رابطه با سیستم مدیریت پایگاه داده mysql، به ذخیره و بازیابی اطلاعات محدود نمی شود، بلکه به عنوان مثال می توان از اطلاعات موجود، آمار کاملی به دست آورد و آنها را با هم مقایسه نمود و نهایتا نتیجه را بر روی نمودار، به صورت آماری ترسیم کرد، از این شیوه می توان به فرض در نمایش آمار بازدیدها و یا در هر سایتی که با آمار و ارقام سر و کار دارد، استفاده نمود؛ از این رو در این آموزش، کدی کاربردی را قرار داده ایم که علی رغم ساده بودن از نظر کدنویسی و حجم خیلی کم، کاربرد و انعطاف پذیری خیلی خوبی دارد، این کد برای رسم نمودارها و مقایسه آمار داده ها، چه به صورت استاتیک و چه به صورت داینامیک و با اطلاعات موجود در دیتابیس، به راحتی قابل استفاده است.

نحوه استفاده از برنامه رسم چارت و نمودار آماری


برای استفاده از این کد، تنها کافی است بسته زیر را دریافت و فایل های موجود در آن را به سرور انتقال داده و مطابق با نیاز خود، موارد قابل تغییر را تنظیم کنید.
دانلود اسکریپت رسم چارت و نمودار آماری - حجم: کمتر از 10 کیلوبایت
بسته بالا حاوی چند فایل با نام های graph.php (فایل نمونه برنامه برای تست)، chart.class.php (فایل اصلی برنامه، حاوی توابع و تنظیمات)، style.css (برای اعمال تنظیمات مربوط به استایل و ظاهر) و پوشه تصاویر است.
توضیح:
- برای استفاده از کد، ابتدا فایل chart.class.php را در صفحه مورد نظر وارد کنید (برای مثال ما این کار را در صفحه نمونه، به صورت include_once انجام داده ایم).
- سپس برای اعمال استایل ظاهری مناسب، فایل style.css را هم به صورت آدرس صحیح، در صفحه ایمپورت کنید (می توانید از صفحه نمونه، الگو برداری کنید).
- سپس کافی است مقادیر را برای نمایش آمار، چه از طریق دیتابیس و چه به صورت استاتیک تعیین کنید (در فایل graph.php ما به صورت استاتیک مقادیری را جهت مثال قرار داده ایم) و کلاس displayChart را فراخوانی کنید (این کار نیز به صورت پیش فرض انجام شده است).
محتویات فایل graph.php، جهت نمونه:



وبگو | ترسیم نمودار با کدهای php




<?php
//ایمپورت فایل اصلی در صفحه
include_once('chart/chart.class.php');
//تعریف مقادیر آمار در متغیر ها
$statistical ["شنبه"] = 20;
$statistical ["یکشنبه"] = 30;
$statistical ["دوشنبه"] = 60;
$statistical ["سه شنبه"] = 25;
$statistical ["چهارشنبه"] = 44;
$statistical ["پنج شنبه"] = 17;
$statistical ["جمعه"] = 66;
//نحوه استفاده
$mc = new Chart($statistical);
$mc->displayChart('مقایسه آمار - نمایش به صورت افقی',0,500,250);
//نحوه استفاده
$mc = new Chart($statistical);
$mc->displayChart('مقایسه آمار - نمایش به صورت عمودی',1,500,250);
?>

فایل chart.class.php، سورس اصلی برنامه:<?php
class Chart {
var $data; // The data array to display
var $type; // Vertical:1 or Horizontal:0 chart
var $title; // The title of the chart
var $width; // The chart box width
var $height; // The chart box height
var $metaSpaceHorizontal = 60; // Total space needed for chart title + bar title + bar value
var $metaSpaceVertical = 60; // Total space needed for chart title + bar title + bar value
var $variousColors;//true or false

function Chart($data){
$this->data = $data;
}
function displayChart($title='', $type, $width=300, $height=200, $variousColor=true){
$this->type = $type;
$this->title = $title;
$this->width = $width;
$this->height = $height;
$this->variousColors = $variousColor;
echo 'width.'px; height:'.$this->height.'px;">

'.$this->title.'

'."rn";
if ($this->type == 1) $this->drawVertical();
else $this->drawHorizontal();
echo '';
}
function getMaxDataValue(){
$max = 0;
foreach ($this->data as $key=>$value) {
if ($value > $max) $max = $value;
}
return $max;
}
function getElementNumber(){
return sizeof($this->data);
}
function drawVertical(){
$multi = ($this->height -$this->metaSpaceHorizontal) / $this->getMaxDataValue();
$max = $multi * $this->getMaxDataValue();
$barw = floor($this->width / $this->getElementNumber()) - 4;
$i = 1;
foreach ($this->data as $key=>$value) {
$b = floor($max - ($value*$multi));
$a = $max - $b;
if ($this->variousColors) $color = ($i % 5) + 1;
else $color = 1;
$i++;
echo ''."rn";
echo ''.$value.''."rn";
 echo ''.$color.'
'."rn";
echo ''.$key.''."rn";
echo ''."rn";
}
}
function drawHorizontal(){
$multi = ($this->width-170) / $this->getMaxDataValue();
$max = $multi * $this->getMaxDataValue();
$barh = floor(($this->height - 50) / $this->getElementNumber());
$i = 1;
foreach ($this->data as $key=>$value) {
$b = floor($value*$multi);
if ($this->variousColors) $color = ($i % 5) + 1;
else $color = 1;
$i++;
echo ''."rn";
echo ''.$key.''."rn";
 echo ''.$color.''."rn";
echo ''.$value.''."rn";
echo '';
}
}
}
?>فایل style.css، برای اعمال تنظیمات ظاهری:/* The sorrounding chart box */
.chartbox {
display:block;
height:700px;
font-family:Tahoma, Geneva, sans-serif;
font-size: 11px;
color:#333;
text-align: center;
margin-right:auto;
margin-left:auto;
margin-bottom:4px;
border:1px solid #333;
overflow:hidden;
background-color:#f9f9f9;
padding:4px;
}
.chartbox h2{
font-size: 11px;
padding:0px;
margin:10px 0px 0px 0px;
}
/* Vertical chart elements */
.barv{
margin: 2px;
display:inline-block;
float:right;
}
.barvvalue {
padding:0px;
margin:0px;
font-size: 11px;
text-align: center;
}
/* Horizontal chart elements */
.barh{
margin: 4px;
text-align:left;
clear:both;
}
.barhvalue {
padding:0px;
margin:0px 5px;
font-family:Tahoma, Geneva, sans-serif;
font-size: 12px;
text-align: left;
overflow:hidden;
float:left;
}
.barhcaption {
padding:0px;
margin:0px 5px;
font-family:Tahoma, Geneva, sans-serif;
font-size: 12px;
text-align: right;
overflow:hidden;
float:left;
}
.barhimage {
float:left;
}

موارد قابل تنظیم و تغییر در برنامه رسم چارت و نمودار آماری


همانطور که پیش تر گفتیم، این کد با وجود حجم کم و پیچیده نبودن کدنویسی آن، دارای انعطاف پذیری خوبی است، در زیر به مواردی که می توان آنها را تغییر داد و سفارشی نمود، اشاره می کنیم.
- نمایش به صورت عمودی یا افقی: بدین منظور کافی است مقدار صفر یا یک را در هنگام فراخوانی اسکریپت، جایگزین کنید، مثلا فراخوانی کلاس به صورت زیر، نمودار را به صورت افقی نشان می دهد.$mc = new Chart($statistical);
$mc->displayChart('مقایسه آمار - نمایش به صورت افقی',0,500,250);
و با تغییر مقادیر از صفر به یک، نمودار به صورت عمودی ترسیم می شود.$mc = new Chart($statistical);
$mc->displayChart('مقایسه آمار - نمایش به صورت عمودی',1,500,250);
- تعداد ستون های آمار: تعداد ستون ها بستگی به تعداد متغیری دارد که به صورت آرایه تعریف می کنید، در مثال پیش فرض، روزهای هفته را در هفت متغیر با آماری فرضی قرار داده ایم.
- تنظیمات ظاهری: تنظیمات ظاهری اصلی برنامه، از طریق فایل css آن (style.css) قابل اعمال است، همچنین در خود فایل chart.class.php، در صورت آشنایی با php می توان تغییراتی اعمال کرد (توصیه می کنیم اگر تسلط لازم را ندارید، از تغییر مقادیر پیش فرض خودداری کنید).
- استفاده از رنگ ثابت یا متغیر: برای استفاده از یک رنگ ثابت در ستون های آماری، باید مقادیر متغیر variousColor را در تابع displayChart به false تغییر دهید (اگر مقدار true باشد، ستون های آمار، هر کدام رنگی اتفاقی خواهند داشت)، این تابع در خطوط اولیه فایل chart.class.php تعریف شده و در حالت پیش فرض مقادیر آن به صورت variousColor=true$ مشخص است.
- استفاده چند باره از کد با تنظیمات متفاوت: از این کد می توانید به هر تعداد که بخواهید، با تنظیمات مشابه استفاده کنید، منتها اگر قصد دارید که چند چارت آماری، اما با تنظیمات متفاوت در یک صفحه داشته باشید، باید توابع را مجددا تعریف و چند قسمت را در تابع جدید تغییر دهید، برای مثال ممکن است در تابع پیش فرض، رنگ انتخاب شده در حالتی که رنگ تمام نمودارها به یک شکل است (variousColor برابر false است)، شماره 1 باشد (قسمت else $color = 1 در تابع drawVertical)، پس برای تابع جدید باید ابتدا نام جدید انتخاب کنید (مثلا displayChart2) و سپس تمام عبارات drawVertical را به drawVertical2 تغییر دهید، به این صورت تابعی جدید با تنظیمات جدید خواهید داشت (در هنگامی فراخوانی نیز، باید نام تابع جدید را فراخوانی کنید).

چگونه آمار را از دیتابیس با php و mysql به دست آوریم؟


آنچه در کد برنامه مورد نیاز است، اعدادی برای مقایسه و ایجاد نمودار آماری است، لذا اینکه این اعداد به چه صورت (داینامیک یا استاتیک) تعریف شوند اهمیتی ندارد، اما در کار با mysql این عدد ممکن است تعداد ردیف ها یا تعداد نتایجی باشد که از یک پُرس و جو به دست می آید، یا ممکن است مقادیر ذخیره شده در فیلد ها باشد، برای مثال درخواست زیر پرس و جویی از mysql می کند و تعداد نتایج به دست آمده را در متغیری می ریزد.$result = mysql_query("SELECT stats FROM stat WHERE visit < 20")
or die(mysql_error());
$total = mysql_num_rows($result);
کد بالا از جدول فرضی stat ردیف stats را در صورتی که مقادیر visit کوچکتر از 20 باشد انتخاب می کند و تعداد ردیف ها را با تابع mysql_num_rows به متغیر total اختصاص می دهد، اکنون این متغیر و مقادیر آن قابل استفاده در برنامه است، برای مقادیر دیگر نیز به همین شکل می توان اعداد را برای مقایسه با هم به دست آورد.


مطالب مشابه :


آموزش رسم نمودار آماری با Word و Power point و Excel

دانلود پروژه آمار - آموزش رسم نمودار آماری با Word و Power point و Excel - دانلود پروژه آمار - دانلود




نمودار آماری و سیاست

آمار ؛ احتمال و ریاضیات - نمودار آماری و سیاست - وبلاگی در زمینه آمار؛ احتمال و ریاضیات و




کاربرد نمودار پارتو

آمار - کاربرد نمودار پارتو - همه چيز براي آماريها: کتاب، حل تمرين، آموزش نرم افزار، اخبار




نمودار پارتو

کاربرد نمودار پارتو نمودار پارتو یک نمودار میله ای است که علل مشکلات به وجود آمده را با




نمودار استخوان ماهی

آمار و آماری - نمودار استخوان ماهی - همه چیز درباره ی مراحل رسم يك نمودار علت و




دانلود جزوه آمار و احتمالات مهندسی

وبلاگ آماری - دانلود جزوه آمار و احتمالات مهندسی - نمودار‌های آماری برای داده‌های گسسته




نمودار پراکنش

نمودار پرا کنش در مطالعه رابطه بین دو متغیر ، اولین قدم رسم داده ها به صورت نقاطی بر روی یک




نحوه رسم چارت و نمودار آماری با php و mysql

نحوه استفاده از برنامه رسم چارت و نمودار آماری برای استفاده از این کد، تنها کافی است بسته




رسم پاراتو با Minitab 14

آمار و آماری - رسم پاراتو با Minitab 14 - همه چیز درباره ی نمودار پارتو




برچسب :