R Syntax Basics for Beginners-5

 



BoxPlot in R

library(ggplot2)

 

Horozontal Boxplot in R

ggplot(BA,

       aes(Phytoplankton,

           Stations))+

  geom_boxplot(varwidth=T,                 # geom_boxplot ব্যবহার হয় বক্সপ্লট তৈরি করার জন্য। 

               fill="red") +

  labs(title="Box plot",

       subtitle="Phytoplankton grouped by Stations",

       caption="Source: Biol_data",

       x="Phytoplankton",

       y="Stations")



Vertical boxplot in R

ggplot(BA, aes(Stations,

               Phytoplankton))+

  geom_boxplot(varwidth=T,

               fill="green") +

  labs(title="Box plot",

       subtitle="Phytoplankton grouped by Stations",

       caption="Source: Biol_data",

       y="Phytoplankton",

       x="Stations")+

  theme_classic()

 

বক্সপ্লট Vertical নাকি Horozontal হবে সেটা নির্ভর করবে  x এবং y এক্সিসে ভ্যারিয়েবলের উপর। ভ্যারিয়েবল এক্সিক্স চেঞ্জ করে দিলেই আমাদের বক্সপ্লট Vertical থেকে Horozontal হয়ে যাবে, আবার Horozontal থেকে Vertical হয়ে যাবে। 

 

Vertical boxplot with the group in R

#vertical boxplot with group 1

ggplot(BA,

       aes(Stations,

           Phytoplankton,

           fill=Zones))+

  geom_boxplot()

 

গ্রুপ অনুসারে ভার্টিক্যাল বক্স প্লট করার ক্ষেত্রে আমরা aes এর ক্ষেতে শুধুমাত্র fill=Zones লিখেছি। এর অর্থ হলো বক্স প্লট এখন Zones অনুসারে তৈরি হবে। 

 

#vertical boxplot with group 2

ggplot(BA,

       aes(Stations,

           Phytoplankton))+

  geom_boxplot(aes(fill=Depth))

 

#NB: Non scientific

 

Responsive Boxplot in R

library(plotly)

plot_ly(

  x = BA$Phytoplankton,

  y = BA$Zones,

  name = "SF Zoo",

  type = "box"

)

 

Dot Plot in R

ggplot(BA,

       aes(Stations,

           Phytoplankton))+

  geom_dotplot(binaxis='y',        এখানে binaxis='y' অর্থ হলো আমরা y এর সাপেক্ষে ডট প্লট দেখবো। 

               binwidth = 0.7,            binwidth এর কাজ হলো প্লট গুলো কত দুরত্ত্বে বসবে সেটা ডিফাইন করা। 

               stackdir='center',   #up,down

               dotsize = 22,

               fill="red")

 

Box Plot + Dot Plot in R

 

library(ggplot2)

 

Box plot and Dot Plots in R 

ggplot(BA,

       aes(Phytoplankton,

           Stations))+

 

  geom_boxplot() +

 

  geom_dotplot(binaxis='y', binwidth = 0.7,

               stackdir='center',

               dotsize = .5,

               fill="red")  +

 

  labs(title="Box plot + Dot plot",

       subtitle="Phytoplankton samples Stations:

       Each dot represents 1 row in source data",

       caption="Source: mpg",

       x="Phytoplankton",

       y="Stations")+

 

  theme(axis.text.x = element_text(angle=65,

                                   vjust=0.6,

                                   hjust=2),

        axis.text.y = element_text(angle=65,

                                   vjust=0.6,

                                   hjust=-0.8))

 

একই সাথে বক্স প্লট এবং ডট প্লট তৈরি করা খুব সাধারন বিষয়। বক্স প্লট ও ডট প্লট এর কমান্ড গুলো বসিয়ে দিলেই আমাদের একই সাথে বক্স প্লট এবং ডট প্লট পেয়ে যাবো। 

 

Segmented Boxplot in R

summary(BA)

BA$sT <- cut(BA$Temperature,

             breaks=c(0,17,25,100),

             Right=F)

 

BA <- within(BA,{sT=NA

sT[Temperature<17]="Low Tempered"

sT[Temperature>=17 & Temperature<25]="Mid Tempered"

sT[Temperature>=25]="Tempered"

})

 

আমরা চাচ্ছিলাম তাপমাত্রার সাপেক্ষে সেগমেন্ট করে দেন বক্স প্লট করবো। যেহেতু তাপমাত্রা সাধারনত নিউমেরিক থাকে সেহেতু আমরা আমাদের প্রয়োজনে এটাকে ক্যাটাগরিতে কনভার্ট করবো।  breaks=c(0,17,25,100) ফাংশনটা দিয়ে আমরা R কে বলে দিচ্ছি যে তাপমাত্রাকে কয়েকটা টাইপে ভাগ করো। সেটা ০ থেকে ১৭, ১৭ থেকে ২৫ এবং ২৫ থেকে ১০০ পর্যন্ত। পরের কমান্ডে আমরা ডিফাইন করে দিচ্ছি কোন রেঞ্জের তাপমাত্রাকে কি হিসাবে ডিফাইন করবো। এই কাজটুকু হয়ে গেলে নিচের নিয়মে আমরা সেগমেন্টেড বক্সপ্লট তৈরি করে ফেলবো। 

 

library(ggplot2)

 

ggplot(BA,

       aes(Zones,

           Phytoplankton,

           fill=sT))+

  geom_boxplot(outlier.colour="red") +

 

  coord_cartesian(ylim = c(0, 500))+

 

  theme(axis.title.x = element_text(colour = "red"),

        axis.title.y = element_text(colour = "blue"),

        axis.title = element_text(colour = "#7F3D17"),

        panel.background = element_rect(fill='pink'),

        panel.grid.major = element_blank(),

        panel.grid.minor = element_blank(),

        panel.border = element_blank())

Comments