Ggplot2 ব্যবহার করে R তে স্ক্যাটার প্লট (উদাহরণ সহ)

গ্রাফগুলি ডেটা বিশ্লেষণ প্রক্রিয়ার তৃতীয় অংশ। প্রথম অংশ সম্পর্কে তথ্য নিষ্কাশন , দ্বিতীয় অংশটি নিয়ে কাজ করে পরিস্কার করা এবং ডেটা ম্যানিপুলেট করা । অবশেষে, ডেটা সায়েন্টিস্টের প্রয়োজন হতে পারে তার ফলাফল গ্রাফিক্যালি যোগাযোগ করুন

ডেটা সায়েন্টিস্টের চাকরি পরের ছবিতে পর্যালোচনা করা যেতে পারে

  • একটি ডেটা সায়েন্টিস্টের প্রথম কাজ হল একটি গবেষণা প্রশ্ন সংজ্ঞায়িত করা। এই গবেষণার প্রশ্নটি প্রকল্পের উদ্দেশ্য এবং লক্ষ্যগুলির উপর নির্ভর করে।
  • এর পরে, অন্যতম প্রধান কাজ হল বৈশিষ্ট্য প্রকৌশল। ডেটা বিজ্ঞানীকে তথ্য সংগ্রহ, ম্যানিপুলেট এবং পরিষ্কার করতে হবে
  • এই ধাপটি সম্পন্ন হলে, তিনি ডেটাসেট অন্বেষণ শুরু করতে পারেন। কখনও কখনও, নতুন আবিষ্কারের কারণে মূল অনুমানকে পরিমার্জন এবং পরিবর্তন করা প্রয়োজন।

  • যখন ব্যাখ্যামূলক বিশ্লেষণ অর্জন করা হয়, তথ্য বিজ্ঞানীকে পাঠকের ক্ষমতা বিবেচনা করতে হবে অন্তর্নিহিত ধারণা এবং মডেল বুঝতে
  • তার ফলাফলগুলি এমন একটি ফর্ম্যাটে উপস্থাপন করা উচিত যা সমস্ত স্টেকহোল্ডাররা বুঝতে পারে। করার অন্যতম সেরা পদ্ধতি যোগাযোগ ফলাফল একটি মাধ্যমে চিত্রলেখ
  • জটিল বিশ্লেষণ সহজ করার জন্য গ্রাফ একটি অবিশ্বাস্য হাতিয়ার।

এই টিউটোরিয়ালে আপনি শিখবেন-

ggplot2 প্যাকেজ

টিউটোরিয়ালের এই অংশটি কিভাবে R দিয়ে গ্রাফ/চার্ট তৈরি করা যায় তার উপর আলোকপাত করে।

এই টিউটোরিয়ালে, আপনি ggplot2 প্যাকেজ ব্যবহার করতে যাচ্ছেন। এই প্যাকেজটি উইলকিনসন, ২০০৫ -এর লেখা গ্রাফিক্স গ্র্যামার বইয়ের ধারাবাহিক অন্তর্নিহিত উপর ভিত্তি করে তৈরি করা হয়েছে। Ggplot2 দিয়ে, আপনি 3-মাত্রিক গ্রাফিক্স প্লট করতে পারবেন না এবং ইন্টারেক্টিভ গ্রাফিক্স তৈরি করতে পারবেন না।

Ggplot2 তে, একটি গ্রাফ নিম্নলিখিত যুক্তি দিয়ে গঠিত:

  • তথ্য
  • নান্দনিক ম্যাপিং
  • জ্যামিতিক বস্তু
  • পরিসংখ্যানগত রূপান্তর
  • দাঁড়িপাল্লা
  • তুল্য সিস্টেম
  • অবস্থান সমন্বয়
  • মুখোমুখি

আপনি টিউটোরিয়ালে সেই যুক্তিগুলি কীভাবে নিয়ন্ত্রণ করবেন তা শিখবেন।

Ggplot2 এর মৌলিক সিনট্যাক্স হল: | _+_ |

স্ক্যাটারপ্লট

দেখা যাক কিভাবে ggplot mtcars ডেটাসেটের সাথে কাজ করে। আপনি mpg ভেরিয়েবল এবং drat ভেরিয়েবলের একটি স্ক্যাটারপ্লট চক্রান্ত করে শুরু করেন।

বেসিক স্ক্যাটার প্লট

 ggplot(data, mapping=aes()) + geometric object arguments: data: Dataset used to plot the graph mapping: Control the x and y-axis geometric object: The type of plot you want to show. The most common object are: - Point: `geom_point()` - Bar: `geom_bar()` - Line: `geom_line()` - Histogram: `geom_histogram()` 

কোড ব্যাখ্যা

  • আপনি প্রথমে ডেটাসেট mtcars ggplot এ পাস করুন।
  • Aes () যুক্তির ভিতরে, আপনি x-axis এবং y-axis যোগ করুন।
  • + চিহ্ন মানে আপনি R কোডটি পড়তে থাকুন। এটি কোডটি ভেঙে আরও পাঠযোগ্য করে তোলে।
  • জ্যামিতিক বস্তুর জন্য geom_point () ব্যবহার করুন।

আউটপুট:

গোষ্ঠী নিয়ে ছড়ানো চক্রান্ত

কখনও কখনও, ডেটার একটি গ্রুপ (যেমন ফ্যাক্টর লেভেল ডেটা) দ্বারা মানগুলি আলাদা করা আকর্ষণীয় হতে পারে। | _+_ |

কোড ব্যাখ্যা

  • Geom_point () এর ভিতরে aes () গ্রুপের রঙ নিয়ন্ত্রণ করে। গ্রুপটি একটি ফ্যাক্টর ভেরিয়েবল হওয়া উচিত। সুতরাং, আপনি পরিবর্তনশীল গিয়ারকে একটি ফ্যাক্টরে রূপান্তর করুন।
  • সব মিলিয়ে আপনার কাছে কোড aes (color = factor (gear)) আছে যা বিন্দুর রঙ পরিবর্তন করে।

আউটপুট:

অক্ষ পরিবর্তন করুন

তথ্য পুনরুদ্ধার করা ডেটা বিজ্ঞানী কাজের একটি বড় অংশ। বিরল ক্ষেত্রে ডেটা একটি সুন্দর ঘণ্টা আকারে আসে। আপনার ডেটাকে বহিরাগতদের প্রতি কম সংবেদনশীল করার একটি সমাধান হল সেগুলি পুনরায় বিক্রয় করা। | _+_ |

কোড ব্যাখ্যা

  • আপনি x এবং y ভেরিয়েবলগুলিকে লগ () এ সরাসরি aes () ম্যাপিং এর ভিতরে রূপান্তর করুন।

মনে রাখবেন যে অন্য কোন রূপান্তর প্রয়োগ করা যেতে পারে যেমন মানায়ন বা স্বাভাবিককরণ।

আউটপুট:

লাগানো মান সহ স্ক্যাটার প্লট

আপনি গ্রাফে আরেকটি স্তরের তথ্য যোগ করতে পারেন। আপনি একটি লিনিয়ার রিগ্রেশন এর লাগানো মান প্লট করতে পারেন। | _+_ |

কোড ব্যাখ্যা

  • গ্রাফ: আপনি আপনার গ্রাফ ভেরিয়েবল গ্রাফে সংরক্ষণ করেন। এটি আরও ব্যবহারের জন্য বা কোডের খুব জটিল লাইন এড়াতে সহায়ক
  • আর্গুমেন্ট stat_smooth () মসৃণ পদ্ধতির জন্য নিয়ন্ত্রণ করে
  • পদ্ধতি = 'এলএম': লিনিয়ার রিগ্রেশন
  • col = '#C42126': রেখার লাল রঙের কোড
  • se = FALSE: প্রমিত ত্রুটি প্রদর্শন করবেন না
  • আকার = 1: লাইনের আকার 1

আউটপুট:

লক্ষ্য করুন যে অন্যান্য মসৃণ পদ্ধতি উপলব্ধ

  • glm
  • ছোলা
  • loess: ডিফল্ট মান
  • রিম

গ্রাফে তথ্য যোগ করুন

এখন পর্যন্ত, আমরা গ্রাফগুলিতে তথ্য যোগ করি নি। গ্রাফগুলি তথ্যবহুল হওয়া দরকার। পাঠকের উচিত অতিরিক্ত ডকুমেন্টেশন উল্লেখ না করে শুধু গ্রাফ দেখে ডেটা বিশ্লেষণের পেছনের গল্পটি দেখা। অতএব, গ্রাফগুলির জন্য ভাল লেবেল প্রয়োজন। আপনি ল্যাব () ফাংশন সহ লেবেল যোগ করতে পারেন।

ল্যাব () এর মৌলিক সিনট্যাক্স হল: | _+_ |

একটি শিরোনাম যোগ করুন

যোগ করার জন্য একটি বাধ্যতামূলক তথ্য অবশ্যই একটি শিরোনাম। | _+_ |

কোড ব্যাখ্যা

  • my_graph: আপনি আপনার সংরক্ষিত গ্রাফ ব্যবহার করেন। যখনই আপনি গ্রাফে নতুন তথ্য যোগ করেন তখন এটি সমস্ত কোড পুনর্লিখন এড়িয়ে যায়।
  • আপনি ল্যাব () এর ভিতরে শিরোনামটি মোড়ান।
  • রেখার লাল রঙের কোড
  • se = FALSE: প্রমিত ত্রুটি প্রদর্শন করবেন না
  • আকার = 1: লাইনের আকার 1

আউটপুট:

একটি গতিশীল নামের সঙ্গে একটি শিরোনাম যোগ করুন

একটি গতিশীল শিরোনাম শিরোনামে আরো সুনির্দিষ্ট তথ্য যোগ করতে সহায়ক।

আপনি স্ট্যাটিক টেক্সট এবং ডায়নামিক টেক্সট প্রিন্ট করতে paste () ফাংশন ব্যবহার করতে পারেন। পেস্ট () এর মৌলিক সিনট্যাক্স হল: | _+_ |

উদাহরণ: | _+_ |

আউটপুট:

library(ggplot2) ggplot(mtcars, aes(x = drat, y = mpg)) + geom_point()
ggplot(mtcars, aes(x = mpg, y = drat)) + geom_point(aes(color = factor(gear)))

আউটপুট:

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) + geom_point(aes(color = factor(gear)))

আপনি আমাদের গ্রাফে একটি গতিশীল নাম যোগ করতে পারেন, যথা এমপিজির গড়। | _+_ |

কোড ব্যাখ্যা

  • আপনি mean_mpg ভেরিয়েবলে সংরক্ষিত গড় (mtcars $ mpg) দিয়ে mpg এর গড় তৈরি করেন
  • আপনি mpg এর গড় মান ফেরত একটি গতিশীল শিরোনাম তৈরি করতে mean_mpg এর সাথে paste () ব্যবহার করেন

আউটপুট:

একটি সাবটাইটেল যোগ করুন

দুটি অতিরিক্ত বিবরণ আপনার গ্রাফকে আরো স্পষ্ট করে তুলতে পারে। আপনি সাবটাইটেল এবং ক্যাপশন সম্পর্কে কথা বলছেন। সাবটাইটেলটি শিরোনামের ঠিক নিচে চলে গেছে। ক্যাপশনটি গণনা এবং ডেটার উৎস সম্পর্কে কে জানাতে পারে। | _+_ |

কোড ব্যাখ্যা

  • ল্যাবের ভিতরে (), আপনি যোগ করেছেন:
    • শিরোনাম = 'মাইল প্রতি ঘন্টা এবং ড্রেটের মধ্যে সম্পর্ক': শিরোনাম যোগ করুন
    • সাবটাইটেল = 'গিয়ার ক্লাসের মাধ্যমে সম্পর্ক ভেঙে যায়': সাবটাইটেল যোগ করুন
    • ক্যাপশন = 'লেখকদের নিজস্ব গণনা: ক্যাপশন যোগ করুন
    • আপনি প্রতিটি নতুন তথ্যকে কমা দিয়ে আলাদা করেন,
  • মনে রাখবেন আপনি কোডের লাইনগুলি ভেঙেছেন। এটি বাধ্যতামূলক নয় এবং এটি কেবল কোডটি আরও সহজে পড়তে সাহায্য করে

আউটপুট:

X- অক্ষ এবং y- অক্ষের নাম পরিবর্তন করুন

ডেটাসেটে ভেরিয়েবলগুলি সর্বদা স্পষ্ট নাও হতে পারে অথবা কনভেনশন দ্বারা _ ব্যবহার করুন যখন একাধিক শব্দ থাকে (যেমন GDP_CAP)। আপনি চান না যে আপনার গ্রাফে এইরকম নাম দেখা যাক। নাম পরিবর্তন করা বা ইউনিটগুলির মতো আরও বিশদ যুক্ত করা গুরুত্বপূর্ণ। | _+_ |

কোড ব্যাখ্যা

  • ল্যাবের ভিতরে (), আপনি যোগ করেছেন:
    • x = 'Drat সংজ্ঞা': x- অক্ষের নাম পরিবর্তন করুন
    • y = 'মাইল প্রতি ঘন্টা': y- অক্ষের নাম পরিবর্তন করুন

আউটপুট:

দাঁড়িপাল্লা নিয়ন্ত্রণ করুন

আপনি অক্ষের স্কেল নিয়ন্ত্রণ করতে পারেন।

ফাংশন seq () সুবিধাজনক যখন আপনি সংখ্যার একটি ক্রম তৈরি করতে হবে। মৌলিক বাক্য গঠন হল: | _+_ |

উদাহরণস্বরূপ, যদি আপনি 3 এর ধাপে 0 থেকে 12 পর্যন্ত একটি পরিসীমা তৈরি করতে চান, তাহলে আপনার চারটি সংখ্যা থাকবে, 0 4 8 12 | _+_ |

আউটপুট:

my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) + geom_point(aes(color = factor(gear))) + stat_smooth(method = 'lm', col = '#C42126', se = FALSE, size = 1) my_graph

আপনি x-axis এবং y-axis- এর স্কেল নিয়ন্ত্রণ করতে পারেন নীচে | _+_ |

কোড ব্যাখ্যা

  • ফাংশন scale_y_continuous () নিয়ন্ত্রণ করে y- অক্ষ
  • ফাংশন scale_x_continuous () নিয়ন্ত্রণ করে x- অক্ষ
  • প্যারামিটার বিরতি অক্ষের বিভাজন নিয়ন্ত্রণ করে। আপনি ম্যানুয়ালি সংখ্যার ক্রম যোগ করতে পারেন বা seq () ফাংশন ব্যবহার করতে পারেন:
    • seq (1, 3.6, by = 0.2): 2.4 থেকে 3.4 পর্যন্ত 3 টি ধাপ দিয়ে ছয়টি সংখ্যা তৈরি করুন
    • seq (1, 1.6, by = 0.1): 1 এর একটি ধাপ সহ 1 থেকে 1.6 পর্যন্ত সাতটি সংখ্যা তৈরি করুন

আউটপুট:

থিম

অবশেষে, R আমাদের বিভিন্ন থিম সহ প্লট কাস্টমাইজ করার অনুমতি দেয়। লাইব্রেরি ggplot2 এর মধ্যে আটটি থিম রয়েছে:

  • theme_bw ()
  • থিম_লাইট ()
  • theme_classis ()
  • theme_linedraw ()
  • theme_dark ()
  • theme_minimal ()
  • থিম_ গ্রে ()
  • theme_void ()
lab(title = 'Hello Guru99') argument: - title: Control the title. It is possible to change or add title with: - subtitle: Add subtitle below title - caption: Add caption below the graph - x: rename x-axis - y: rename y-axis Example:lab(title = 'Hello Guru99', subtitle = 'My first plot') 

আউটপুট:

প্লট সংরক্ষণ করুন

এই সমস্ত পদক্ষেপের পরে, আপনার গ্রাফ সংরক্ষণ এবং ভাগ করার সময় এসেছে। আপনি গ্রাফটি প্লট করার ঠিক পরে ggsave ('ফাইলের নাম) যোগ করুন এবং এটি হার্ড ড্রাইভে সংরক্ষণ করা হবে।

গ্রাফটি ওয়ার্কিং ডিরেক্টরিতে সেভ করা আছে। কাজের ডিরেক্টরি চেক করতে, আপনি এই কোডটি চালাতে পারেন: | _+_ |

আসুন আপনার চমত্কার গ্রাফটি চক্রান্ত করি, এটি সংরক্ষণ করি এবং অবস্থানটি পরীক্ষা করি | _+_ |

আউটপুট:

my_graph + labs( title = 'Plot Mile per hours and drat, in log' )

আউটপুট:

paste('This is a text', A) arguments - ' ': Text inside the quotation marks are the static text - A: Display the variable stored in A - Note you can add as much static text and variable as you want. You need to separate them with a comma 

বিঃদ্রঃ : শুধুমাত্র শিক্ষাগত উদ্দেশ্যে, আমরা আপনার জন্য ডিরেক্টরি ফোল্ডার খুলতে open_folder () নামে একটি ফাংশন তৈরি করেছি। আপনাকে কেবল নীচের কোডটি চালাতে হবে এবং ছবিটি কোথায় সংরক্ষণ করা হয়েছে তা দেখতে হবে। আপনি my_fantastic_plot.png একটি ফাইলের নাম দেখতে পাবেন। | _+_ |

সারসংক্ষেপ

আপনি নীচের টেবিলে একটি স্ক্যাটার প্লট তৈরি করতে যুক্তিগুলি সংক্ষিপ্ত করতে পারেন:

উদ্দেশ্য

কোড

বেসিক স্ক্যাটার প্লট

A <-2010 paste('The first year is', A)

রঙের গোষ্ঠী দিয়ে ছড়ানো চক্রান্ত

## [1] 'The first year is 2010'

লাগানো মান যোগ করুন

B <-2018 

paste ('The first year is', A, 'and the last year is', B)

শিরোনাম যোগ করুন

## [1] 'The first year is 2010 and the last year is 2018' 

সাবটাইটেল যোগ করুন

mean_mpg <- mean(mtcars$mpg) my_graph + labs( title = paste('Plot Mile per hours and drat, in log. Average mpg is', mean_mpg) )

X নামকরণ করুন

my_graph + labs( title = 'Relation between Mile per hours and drat', subtitle = 'Relationship break down by gear class', caption = 'Authors own computation' )

আমার নাম পরিবর্তন করুন এবং

my_graph + labs( x = 'Drat definition', y = 'Mile per hours', color = 'Gear', title = 'Relation between Mile per hours and drat', subtitle = 'Relationship break down by gear class', caption = 'Authors own computation' )

স্কেল নিয়ন্ত্রণ করুন

seq(begin, last, by = x) arguments: - begin: First number of the sequence - last: Last number of the sequence - by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last` 

লগ তৈরি করুন

seq(0, 12,4)

থিম

## [1] 0 4 8 12 

সংরক্ষণ

my_graph + scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) + scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) + labs( x = 'Drat definition', y = 'Mile per hours', color = 'Gear', title = 'Relation between Mile per hours and drat', subtitle = 'Relationship break down by gear class', caption = 'Authors own computation' )