تخفیف ویژه

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

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

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

نمونه ششم : نمودار دایره ای با گرادیان یا gradient

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

<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 = {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        };
        var title = {
            text: 'Browser market shares at a specific website, 2014'
        };
        var tooltip = {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        };
        var plotOptions = {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}%</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        };
        var series = [{
            type: 'pie',
            name: 'Browser share',
            data: [
                ['Firefox', 45.0],
                ['IE', 26.8], {
                    name: 'Chrome',
                    y: 12.8,
                    sliced: true,
                    selected: true
                },
                ['Safari', 8.5],
                ['Opera', 6.2],
                ['Others', 0.7]
            ]
        }];
        // Radialize the colors
        Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {
            return {
                radialGradient: {
                    cx: 0.5,
                    cy: 0.3,
                    r: 0.7
                },
                stops: [
                    [0, color],
                    [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
                ]
            };
        });

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

</html>

میبینید که کدی بصورت زیر رو قرار دادیم:

// Radialize the colors
Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {
   return {
       radialGradient: {
           cx: 0.5,
           cy: 0.3,
           r: 0.7
       },
       stops: [
           [0, color],
           [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
       ]
   };
});

با استفاده از کد بالا بصورت شعاعی گرادیانی برای نمودار ایجاد میشه و به زیبایی اون می‌افزاید. میبینید مرکز و شعاع رو در نظر گرفته و رنگهایی که قراره به اون خاتمه پیدا کنه رو درون stops قرار داده. خروجی بصورت زیر خواهد شد:pie gradient chart

نمونه هفتم : نمودار دایره ای تگ رنگی

با استفاده از این نمونه میتونین نمودارهای دایره ای رسم کنید که بصورت تک فام باشن و کل نمودارهای اون دارای رنگهای مشابهی باشن. برای مثال آبی کم رنگ، متوسط، پررنگ و ... . کل کدها بصورت زیر هست:

<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 = {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        };
        var title = {
            text: 'Browser market shares at a specific website, 2014'
        };
        var tooltip = {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        };
        var plotOptions = {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}%</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        };
        var series = [{
            type: 'pie',
            name: 'Browser share',
            data: [
                ['Firefox', 45.0],
                ['IE', 26.8], {
                    name: 'Chrome',
                    y: 12.8,
                    sliced: true,
                    selected: true
                },
                ['Safari', 8.5],
                ['Opera', 6.2],
                ['Others', 0.7]
            ]
        }];
        // Make monochrome colors and set them as default for all pies
        Highcharts.getOptions().plotOptions.pie.colors = (function() {
            var colors = [];
            var base = Highcharts.getOptions().colors[0];
            var i;

            for (i = 0; i < 10; i += 1) {
                // Start out with a darkened base color (negative brighten), and end
                // up with a much brighter color
                colors.push(Highcharts.Color(base).brighten((i - 3) / 7).get());
            }
            return colors;
        }());

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

</html>

میبینید که کدی بصورت زیر قرار داده شده:

// Make monochrome colors and set them as default for all pies
Highcharts.getOptions().plotOptions.pie.colors = (function() {
   var colors = [];
   var base = Highcharts.getOptions().colors[0];
   var i;

   for (i = 0; i < 10; i += 1) {
       // Start out with a darkened base color (negative brighten), and end
       // up with a much brighter color
       colors.push(Highcharts.Color(base).brighten((i - 3) / 7).get());
   }
   return colors;
}());

 

میبینید که عملیاتی بر روی رنگهای مورد نظر صورت گرفته تا اون رو بصورت monochrome در بیاره. خروجی بصورت زیر میشه:monochrome pie chart

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

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

یا علی

Source

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

جلسات دوره

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

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

نیاز به لاگین

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