Data Points এবং Custom Markers যোগ করা

Line Chart এবং Series Chart কাস্টমাইজেশন - ডিসি.জেএস (DC.js) - Web Development

232

DC.js দিয়ে ডেটা পয়েন্ট এবং কাস্টম মার্কার যোগ করা সম্ভব, যা আপনার ভিজ্যুয়ালাইজেশনকে আরও ইন্টারেক্টিভ এবং কাস্টমাইজড করতে সাহায্য করে। DC.js মূলত D3.js এর উপর ভিত্তি করে তৈরি, তাই আপনি D3.js এর ক্ষমতা ব্যবহার করে কাস্টম মার্কার এবং ডেটা পয়েন্ট যোগ করতে পারেন। এখানে আমরা দেখব কীভাবে Bar Chart, Line Chart, বা অন্যান্য চার্টে কাস্টম ডেটা পয়েন্ট এবং মার্কার যোগ করা যায়।


১. DC.js এর মাধ্যমে ডেটা পয়েন্ট যোগ করা

DC.js দিয়ে সাধারণত যে চার্ট তৈরি করা হয়, সেখানে ডেটা পয়েন্টগুলিকে কাস্টমাইজ করা যায়। এই পয়েন্টগুলিকে বিভিন্ন আকার বা রঙ দিয়ে সাজানো যেতে পারে, যাতে ডেটা ভিজ্যুয়ালাইজেশন আরও স্পষ্ট এবং ইন্টারেক্টিভ হয়।

উদাহরণ: একটি Bar Chart এ ডেটা পয়েন্ট যোগ করা

HTML এবং JavaScript সেটআপ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DC.js Bar Chart - Data Points and Custom Markers</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.2/d3.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter2/1.5.7/crossfilter.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/dc/5.0.3/dc.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dc/5.0.3/dc.min.css">
</head>
<body>
    <h1>DC.js Bar Chart with Data Points and Custom Markers</h1>
    <div id="bar-chart"></div>

    <script>
        // ডেটাসেট
        const data = [
            { category: "A", value: 30 },
            { category: "B", value: 50 },
            { category: "C", value: 70 },
            { category: "D", value: 20 },
            { category: "E", value: 60 }
        ];

        // Crossfilter সেটআপ
        const ndx = crossfilter(data);
        const dimension = ndx.dimension(d => d.category);
        const group = dimension.group().reduceSum(d => d.value);

        // DC.js বার চার্ট
        const barChart = dc.barChart("#bar-chart");

        barChart
            .width(600)
            .height(300)
            .dimension(dimension)
            .group(group)
            .x(d3.scaleBand()) // এক্স-অক্ষের স্কেল
            .xUnits(dc.units.ordinal) // ডিসক্রিট ডেটা ব্যবহারের জন্য
            .yAxisLabel("Value")
            .xAxisLabel("Category")
            .renderHorizontalGridLines(true)
            .on("pretransition", function(chart) {
                // ডেটা পয়েন্টে কাস্টম মার্কার যোগ করা
                chart.selectAll("rect")
                    .style("fill", "steelblue") // ডেটা পয়েন্টের রঙ
                    .on("mouseover", function(event, d) {
                        d3.select(this).style("fill", "orange"); // হোভার হলে রঙ পরিবর্তন
                    })
                    .on("mouseout", function(event, d) {
                        d3.select(this).style("fill", "steelblue"); // মাউস আউট হলে আগের রঙে ফিরিয়ে আনা
                    });
            });

        // চার্ট রেন্ডার
        dc.renderAll();
    </script>
</body>
</html>

ব্যাখ্যা:

  1. Bar Chart: dc.barChart("#bar-chart") দিয়ে একটি বার চার্ট তৈরি করা হয়েছে।
  2. ডেটা পয়েন্টে কাস্টম মার্কার যোগ করা:
    • chart.selectAll("rect") দিয়ে প্রতিটি বার (বার চার্টের প্রতিটি ডেটা পয়েন্ট) নির্বাচন করা হয়েছে।
    • style("fill", "steelblue") দিয়ে বারগুলোর রঙ নির্ধারণ করা হয়েছে।
    • Mouseover and Mouseout ইভেন্টের মাধ্যমে কাস্টম মার্কারের হোভার ইফেক্ট যোগ করা হয়েছে, যেখানে রঙ পরিবর্তন করা হচ্ছে।

২. DC.js এর মাধ্যমে কাস্টম মার্কার যোগ করা

কাস্টম মার্কার যোগ করতে Line Chart বা অন্যান্য চার্টে SVG পাথ বা মার্কার ব্যবহার করা হয়। DC.js এই সক্ষমতা প্রদান করে, যা D3.js এর মাধ্যমে ইমপ্লিমেন্ট করা হয়।

উদাহরণ: Line Chart এ কাস্টম মার্কার যোগ করা

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DC.js Line Chart - Custom Markers</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.2/d3.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter2/1.5.7/crossfilter.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/dc/5.0.3/dc.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dc/5.0.3/dc.min.css">
</head>
<body>
    <h1>DC.js Line Chart with Custom Markers</h1>
    <div id="line-chart"></div>

    <script>
        // ডেটাসেট
        const data = [
            { date: "2023-12-01", value: 30 },
            { date: "2023-12-02", value: 50 },
            { date: "2023-12-03", value: 70 },
            { date: "2023-12-04", value: 20 },
            { date: "2023-12-05", value: 60 }
        ];

        // Crossfilter সেটআপ
        const ndx = crossfilter(data);
        const dateDimension = ndx.dimension(d => new Date(d.date));
        const valueGroup = dateDimension.group().reduceSum(d => d.value);

        // DC.js লাইন চার্ট
        const lineChart = dc.lineChart("#line-chart");

        lineChart
            .width(600)
            .height(300)
            .dimension(dateDimension)
            .group(valueGroup)
            .x(d3.scaleTime().domain([new Date("2023-12-01"), new Date("2023-12-05")]))
            .xAxisLabel("Date")
            .yAxisLabel("Value")
            .renderHorizontalGridLines(true)
            .on("pretransition", function(chart) {
                // কাস্টম মার্কার যোগ করা
                chart.selectAll("circle.dot")
                    .style("fill", "red") // ডেটা পয়েন্টের রঙ পরিবর্তন
                    .attr("r", 6) // ডেটা পয়েন্টের আকার নির্ধারণ
                    .on("mouseover", function(event, d) {
                        d3.select(this).style("fill", "green"); // হোভার হলে মার্কারের রঙ পরিবর্তন
                    })
                    .on("mouseout", function(event, d) {
                        d3.select(this).style("fill", "red"); // মাউস আউট হলে আগের রঙে ফিরিয়ে আনা
                    });
            });

        // চার্ট রেন্ডার
        dc.renderAll();
    </script>
</body>
</html>

ব্যাখ্যা:

  1. Line Chart: dc.lineChart("#line-chart") দিয়ে একটি লাইন চার্ট তৈরি করা হয়েছে।
  2. কাস্টম মার্কার (ডট) যোগ করা:
    • chart.selectAll("circle.dot") দিয়ে লাইন চার্টের ডেটা পয়েন্ট (ডট) নির্বাচন করা হয়েছে।
    • style("fill", "red") দিয়ে ডটের রঙ পরিবর্তন করা হয়েছে।
    • Mouseover and Mouseout ইভেন্টের মাধ্যমে কাস্টম মার্কারের হোভার ইফেক্ট যোগ করা হয়েছে।

৩. কাস্টম মার্কার এবং ডেটা পয়েন্ট কাস্টমাইজেশন এর সুবিধা

  • ইন্টারঅ্যাকটিভিটি: কাস্টম মার্কার এবং ডেটা পয়েন্ট যোগ করে আপনার চার্ট আরও ইন্টারেক্টিভ এবং ব্যবহারকারী বান্ধব করা যায়।
  • ভিজ্যুয়াল ক্লিয়ারিটি: ডেটা পয়েন্ট কাস্টমাইজ করে বিশদভাবে ডেটা উপস্থাপন করা সহজ হয়।
  • ডেটার ফিল্টারিং: চার্টের মধ্যে কাস্টম মার্কার যোগ করা ব্যবহারকারীদের ডেটা ফিল্টারিং বা সিলেকশন করতে সহায়ক হয়।

সারাংশ

DC.js এর মাধ্যমে Data Points এবং Custom Markers যোগ করা আপনার ডেটা ভিজ্যুয়ালাইজেশনকে আরও ইন্টারেক্টিভ এবং স্পষ্ট করে তোলে। আপনি সহজেই ডেটা পয়েন্টের আকার, রঙ এবং হোভার ইফেক্ট কাস্টমাইজ করতে পারেন, যা ব্যবহারকারীদের জন্য আরও আকর্ষণীয় এবং ব্যবহারযোগ্য ভিজ্যুয়াল তৈরি করে।

Content added By
Promotion

Are you sure to start over?

Loading...