در این جلسه با ادامه موضوع مربوط به رسم نمودار با Highcharts در خدمتتون هستم.
نمونه دوم : نمودار ستونی و خطی دو محوره
در این نمونه میخایم یک نمونه نمودار رو در اختیارتون قرار بدیم که در اون علاوه بر اینکه انواع مختلف نمودارهای ستونی و خطی قرار داده شده، محورهای عمودی اون دو برابر شده و یک محور در سمت چپ و دیگری در سمت راست هست و هر کدوم مختص به ویژگی و شاخص معینی هست. کل کدهای مربوط به این نمونه رو در اختیارتون میزارم و بعد براتون توضیح میدم:
<html> <head> <title>Highcharts Tutorial</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="http://code.highcharts.com/highcharts.js"></script> </head> <body> <div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div> <script language="JavaScript"> $(document).ready(function() { var chart = { zoomType: 'xy' }; var subtitle = { text: 'Source: WorldClimate.com' }; var title = { text: 'Average Monthly Temperature and Rainfall in Tokyo' }; var xAxis = { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], crosshair: true }; var yAxis = [{ // Primary yAxis labels: { format: '{value}\xB0C', style: { color: Highcharts.getOptions().colors[1] } }, title: { text: 'Temperature', style: { color: Highcharts.getOptions().colors[1] } } }, { // Secondary yAxis title: { text: 'Rainfall', style: { color: Highcharts.getOptions().colors[0] } }, labels: { format: '{value} mm', style: { color: Highcharts.getOptions().colors[0] } }, opposite: true }]; var tooltip = { shared: true }; var legend = { layout: 'vertical', align: 'left', x: 120, verticalAlign: 'top', y: 100, floating: true, backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF' }; var series = [{ name: 'Rainfall', type: 'column', yAxis: 1, data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], tooltip: { valueSuffix: ' mm' } }, { name: 'Temperature', type: 'spline', data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6], tooltip: { valueSuffix: '\xB0C' } }]; var json = {}; json.chart = chart; json.title = title; json.subtitle = subtitle; json.xAxis = xAxis; json.yAxis = yAxis; json.tooltip = tooltip; json.legend = legend; json.series = series; $('#container').highcharts(json); }); </script> </body> </html>
در ابتدا کدی بصورت زیر قرار داده شده:
var chart = { zoomType: 'xy' };
با استفاده از این کد همونطور که قبلا توضیح داده بودیم، باعث میشیم که کاربر بتونه هم در جهت افقی و عمودی بزرگنمایی کنه و اطلاعات رو بهتر و بزرگتر ببینه.
var yAxis = [{ // Primary yAxis labels: { format: '{value}\xB0C', style: { color: Highcharts.getOptions().colors[1] } }, title: { text: 'Temperature', style: { color: Highcharts.getOptions().colors[1] } } }, { // Secondary yAxis title: { text: 'Rainfall', style: { color: Highcharts.getOptions().colors[0] } }, labels: { format: '{value} mm', style: { color: Highcharts.getOptions().colors[0] } }, opposite: true }];
اصلیترین قسمت این مطلب در کد بالا قرار داده شده و اونم اینه که برای محور عمودی، دو محور قرار داده شده و هر کدوم شاخص متفاوتی هست. میبینید که yAxis دارای دو عضو هست. عضو اول محور عمودی اول و عضو دوم، محور عمودی دوم رو مشخص میکنه. هر کدوم از محورها خودشون هم دارای ویژگی هایی هستن. با استفاده از ویژگی format، قالب اعدادی که بر روی محورها قرار داده میشن رو مشخص میکنیم و با استفاده از style هم رنگ اون رو مشخص میکنیم. با استفاده از ویژگی title هم عناوینی رو برای هر کدوم مشخص میکنیم. با استفاده از true قرار دادن ویژگی opposite، دو محور در یک سمت قرار نمیگیرن و یکی در سمت چپ و دیگری در سمت راست قرار میگیره.
var series = [{ name: 'Rainfall', type: 'column', yAxis: 1, data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], tooltip: { valueSuffix: ' mm' } }, { name: 'Temperature', type: 'spline', data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6], tooltip: { valueSuffix: '\xB0C' } }];
درون متغیر Series هم داده هایی که قراره در نمودار نمایش داده بشن رو قرار میدیم. میبینید که دو دسته قرار داده شده و هر کدوم از اونا type و نوع متفاوتی دارن. اولی از نوع ستونی و دومی از نوع spline هست. درون ویژگی data هم مقادیر مورد نظر خودمون رو قرار دادیم. خروجی بصورت زیر خواهد بود:
امیدوارم از این مطلب خوشتون اومده باشه.
موفق و پیروز باشید
یا علی
اولین دیدگاه این پست رو تو بنویس !