تخفیف ویژه

آموزش رسم نمودار با Highcharts (جلسه 21) - نمودارهای ستونی عمودی - قسمت 5

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

در این جلسه با ادامه موضوع مربوط به رسم نمودار با Highcharts در خدمتتون هستم. highcharts

نمونه هشتم : نمودار ستونی عمودی با مکانهای ثابت

با استفاده از این نمونه میتونین نمودارهایی رسم کنید که نمودارهای اون موقعیت‌های ثابت و مورد نظر شما رو داشته باشن و فاصله اونا رو از هم مشخص کنید. در این نمونه از ویژگی‌های pointPadding و pointPlacement استفاده شده است. کل کدهای مربوط به این نمونه رو در اختیارتون میزارم و بعد براتون توضیح میدم:

<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 = {
            type: 'column'
        };
        var title = {
            text: 'Efficiency Optimization by Branch'
        };
        var xAxis = {
            categories: ['Seattle HQ', 'San Francisco', 'Tokyo']
        };
        var yAxis = [{
            min: 0,
            title: {
                text: 'Employees'
            }
        }, {
            title: {
                text: 'Profit (millions)'
            },
            opposite: true
        }];
        var legend = {
            shadow: false
        };
        var tooltip = {
            shared: true
        };
        var credits = {
            enabled: false
        };
        var plotOptions = {
            column: {
                grouping: false,
                shadow: false,
                borderWidth: 0
            }
        };
        var series = [{
            name: 'Employees',
            color: 'rgba(165,170,217,1)',
            data: [150, 73, 20],
            pointPadding: 0.3,
            pointPlacement: -0.2
        }, {
            name: 'Employees Optimized',
            color: 'rgba(126,86,134,.9)',
            data: [140, 90, 40],
            pointPadding: 0.4,
            pointPlacement: -0.2
        }, {
            name: 'Profit',
            color: 'rgba(248,161,63,1)',
            data: [183.6, 178.8, 198.5],
            tooltip: {
                valuePrefix: '$',
                valueSuffix: ' M'
            },
            pointPadding: 0.3,
            pointPlacement: 0.2,
            yAxis: 1
        }, {
            name: 'Profit Optimized',
            color: 'rgba(186,60,61,.9)',
            data: [203.6, 198.8, 208.5],
            tooltip: {
                valuePrefix: '$',
                valueSuffix: ' M'
            },
            pointPadding: 0.4,
            pointPlacement: 0.2,
            yAxis: 1
        }];

        var json = {};
        json.chart = chart;
        json.title = title;
        json.xAxis = xAxis;
        json.yAxis = yAxis;
        json.credits = credits;
        json.legend = legend;
        json.tooltip = tooltip;
        json.plotOptions = plotOptions;
        json.series = series;
        $('#container').highcharts(json);
    });
    </script>
</body>

</html><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 = {
            type: 'column'
        };
        var title = {
            text: 'Efficiency Optimization by Branch'
        };
        var xAxis = {
            categories: ['Seattle HQ', 'San Francisco', 'Tokyo']
        };
        var yAxis = [{
            min: 0,
            title: {
                text: 'Employees'
            }
        }, {
            title: {
                text: 'Profit (millions)'
            },
            opposite: true
        }];
        var legend = {
            shadow: false
        };
        var tooltip = {
            shared: true
        };
        var credits = {
            enabled: false
        };
        var plotOptions = {
            column: {
                grouping: false,
                shadow: false,
                borderWidth: 0
            }
        };
        var series = [{
            name: 'Employees',
            color: 'rgba(165,170,217,1)',
            data: [150, 73, 20],
            pointPadding: 0.3,
            pointPlacement: -0.2
        }, {
            name: 'Employees Optimized',
            color: 'rgba(126,86,134,.9)',
            data: [140, 90, 40],
            pointPadding: 0.4,
            pointPlacement: -0.2
        }, {
            name: 'Profit',
            color: 'rgba(248,161,63,1)',
            data: [183.6, 178.8, 198.5],
            tooltip: {
                valuePrefix: '$',
                valueSuffix: ' M'
            },
            pointPadding: 0.3,
            pointPlacement: 0.2,
            yAxis: 1
        }, {
            name: 'Profit Optimized',
            color: 'rgba(186,60,61,.9)',
            data: [203.6, 198.8, 208.5],
            tooltip: {
                valuePrefix: '$',
                valueSuffix: ' M'
            },
            pointPadding: 0.4,
            pointPlacement: 0.2,
            yAxis: 1
        }];

        var json = {};
        json.chart = chart;
        json.title = title;
        json.xAxis = xAxis;
        json.yAxis = yAxis;
        json.credits = credits;
        json.legend = legend;
        json.tooltip = tooltip;
        json.plotOptions = plotOptions;
        json.series = series;
        $('#container').highcharts(json);
    });
    </script>
</body>

</html>

کدی که بیشتر توجه ما در این آموزش به اون جلب میشه، کد زیر هست:

var series = [{
   name: 'Employees',
   color: 'rgba(165,170,217,1)',
   data: [150, 73, 20],
   pointPadding: 0.3,
   pointPlacement: -0.2
}, {
   name: 'Employees Optimized',
   color: 'rgba(126,86,134,.9)',
   data: [140, 90, 40],
   pointPadding: 0.4,
   pointPlacement: -0.2
}, {
   name: 'Profit',
   color: 'rgba(248,161,63,1)',
   data: [183.6, 178.8, 198.5],
   tooltip: {
       valuePrefix: '$',
       valueSuffix: ' M'
   },
   pointPadding: 0.3,
   pointPlacement: 0.2,
   yAxis: 1
}, {
   name: 'Profit Optimized',
   color: 'rgba(186,60,61,.9)',
   data: [203.6, 198.8, 208.5],
   tooltip: {
       valuePrefix: '$',
       valueSuffix: ' M'
   },
   pointPadding: 0.4,
   pointPlacement: 0.2,
   yAxis: 1
}];

 

میبینید که در کدهای بالا دو ویژگی pointPadding و pointPlacement وجود داره.

ویژگی pointPlacement سه مقدار null و on و between رو قبول میکنه. در نمودار ستونی زمانی که این ویژگی برابر با on قرار میگیره، هیچ فاصله و padding بر روی محور افقی بین ستونها ایجاد نمیشه. اگه مقدارشو برابر با between قرار بدیم، ستونها در بین تیک‌های موجود بر محور افقی قرار داده میشه. از نسخه 3.0.2 به بعد امکان اینکه از اعداد دلخواه برای این ویژگی استفاده کنید، محیا شده است. برای نمونه اگر اون رو برابر با 0 قرار بدین، ستونها دقیقا بر روی تیکهای موجود بر روی محور قرار میگیرن و اگر اون رو برابر با -0.5 قرار بدین بین اون تیک و تیک قبلی قرار میگیرن و اگر برابر با 0.5 قرار بدین، بین اون تیک و تیک بعدی قرار میگیرن.

با استفاده از ویژگی pointPadding میتونین فاصله بین ستونهای نمودار رو مشخص کنید. مقدار پیش فرض این ویژگی 0.1 است و میبینید که در کدهای بالا برای هر کدام از Series ها، مقدار اون رو تغییر دادن.

در نهایت خروجی بصورت زیر خواهد بود:column fixed chart

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

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

یا علی

Source

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

جلسات دوره

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

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

نیاز به لاگین

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