تخفیف ویژه

آموزش رسم نمودار با Highcharts (جلسه 31) - نمودار ترکیبی - قسمت 1

دسته بندی: جاوا اسکریپت
زمان مطالعه: 10 دقیقه
۲۲ خرداد ۱۳۹۵

در این جلسه با ادامه موضوع مربوط به رسم نمودار با Highcharts در خدمتتون هستم. 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 title = {
            text: 'Combination chart'
        };
        var xAxis = {
            categories: ['Apples', 'Oranges', 'Pears', 'Bananas', 'Plums']
        };
        var labels = {
            items: [{
                html: 'Total fruit consumption',
                style: {
                    left: '50px',
                    top: '18px',
                    color: (Highcharts.theme && Highcharts.theme.textColor) || 'black'
                }
            }]
        };
        var series = [{
            type: 'column',
            name: 'Jane',
            data: [3, 2, 1, 3, 4]
        }, {
            type: 'column',
            name: 'John',
            data: [2, 3, 5, 7, 6]
        }, {
            type: 'column',
            name: 'Joe',
            data: [4, 3, 3, 9, 0]
        }, {
            type: 'spline',
            name: 'Average',
            data: [3, 2.67, 3, 6.33, 3.33],
            marker: {
                lineWidth: 2,
                lineColor: Highcharts.getOptions().colors[3],
                fillColor: 'white'
            }
        }, {
            type: 'pie',
            name: 'Total consumption',
            data: [{
                name: 'Jane',
                y: 13,
                color: Highcharts.getOptions().colors[0] // Jane's color
            }, {
                name: 'John',
                y: 23,
                color: Highcharts.getOptions().colors[1] // John's color
            }, {
                name: 'Joe',
                y: 19,
                color: Highcharts.getOptions().colors[2] // Joe's color
            }],
            center: [100, 80],
            size: 100,
            showInLegend: false,
            dataLabels: {
                enabled: false
            }
        }];

        var json = {};
        json.title = title;
        json.xAxis = xAxis;
        json.labels = labels;
        json.series = series;
        $('#container').highcharts(json);
    });
    </script>
</body>

</html>

بیشترین تمرکز ما بر روی قطعه کد زیر هست:

var series = [{
    type: 'column',
    name: 'Jane',
    data: [3, 2, 1, 3, 4]
}, {
    type: 'column',
    name: 'John',
    data: [2, 3, 5, 7, 6]
}, {
    type: 'column',
    name: 'Joe',
    data: [4, 3, 3, 9, 0]
}, {
    type: 'spline',
    name: 'Average',
    data: [3, 2.67, 3, 6.33, 3.33],
    marker: {
        lineWidth: 2,
        lineColor: Highcharts.getOptions().colors[3],
        fillColor: 'white'
    }
}, {
    type: 'pie',
    name: 'Total consumption',
    data: [{
        name: 'Jane',
        y: 13,
        color: Highcharts.getOptions().colors[0] // Jane's color
    }, {
        name: 'John',
        y: 23,
        color: Highcharts.getOptions().colors[1] // John's color
    }, {
        name: 'Joe',
        y: 19,
        color: Highcharts.getOptions().colors[2] // Joe's color
    }],
    center: [100, 80],
    size: 100,
    showInLegend: false,
    dataLabels: {
        enabled: false
    }
}];

میبینید که درون متغیر series اعضای زیادی وجود داره که هر کدوم از این اعضاء ویژگی‌های خاص خودشون رو دارن. با استفاده از ویژگی type، ویژگی هر کدوم از اونا رو مشخص میکنیم و همچنین با استفاده از data، اطلاعات و داده‌های اونا رو به نمودار معرفی میکنیم. نمودارهایی که اونا رو ستونی تعریف کردیم بصورت زیر هستند:

{
    type: 'column',
    name: 'Jane',
    data: [3, 2, 1, 3, 4]
}, {
    type: 'column',
    name: 'John',
    data: [2, 3, 5, 7, 6]
}, {
    type: 'column',
    name: 'Joe',
    data: [4, 3, 3, 9, 0]
}

میبینید که سه بلاک قرار داده شده برای هر سه اونا نوع ستونی در نظر گرفته شده و هر کدوم اسمی دارن و اطلاعاتشون هم بصورت آرایه قرار داده شده. بعد از اون یک تابع خطی از نوع spline تعریف شده:

{
    type: 'spline',
    name: 'Average',
    data: [3, 2.67, 3, 6.33, 3.33],
    marker: {
        lineWidth: 2,
        lineColor: Highcharts.getOptions().colors[3],
        fillColor: 'white'
    }
}

میبینید که نوع اون رو برابر با spline قرار دادیم و اطلاعاتش رو هم قرار دادیم. برای مارکر یا نشانه اون هم طول border اون رو برابر با 2 قرار دادیم و رنگشو مشخص کردیم و رنگ داخلی اون رو سفید در نظر گرفتیم.

{
    type: 'pie',
    name: 'Total consumption',
    data: [{
        name: 'Jane',
        y: 13,
        color: Highcharts.getOptions().colors[0] // Jane's color
    }, {
        name: 'John',
        y: 23,
        color: Highcharts.getOptions().colors[1] // John's color
    }, {
        name: 'Joe',
        y: 19,
        color: Highcharts.getOptions().colors[2] // Joe's color
    }],
    center: [100, 80],
    size: 100,
    showInLegend: false,
    dataLabels: {
        enabled: false
    }
}

میبینید که این نمونه یک نمودار دایره ای هست و داده‌های اون رو در سه دسته در Data قرار دادیم. میبینید که موقعیت مرکز اون رو با استفاده از ویژگی center مشخص کردیم و سایزشو 100 در نظر گرفتیم. خروجی بصوررت زیر خواهد شد:combination column chart

امیدوارم از این مطلب خوشتون اومده باشه.

موفق و پیروز باشید

یا علی

Source

چه امتیازی به این مقاله می دید؟
نویسنده محمد اسفندیاری
بسیار به طراحی وب علاقمندم و به سرعت در حال یادگیری تمام مباحث پیشرفته هستم و دوست دارم که به دیگران هم یاد بدهم.

جلسات دوره

نظرات کاربران

اولین دیدگاه این پست رو تو بنویس !

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.