iris = read.csv('iris.csv')
iris

select a particular class

setosa_data = iris[iris$variety ==  'Setosa', ]
setosa_data
setosa_data_sl_5 = setosa_data[setosa_data$sepal.length >= 5.0, ]
setosa_data_sl_5
setosa_data_sl_5_pl_15 = setosa_data_sl_5[setosa_data_sl_5$petal.length >= 1.5, ]
setosa_data_sl_5_pl_15
setosa_data_sl_5_pl_15 = setosa_data_sl_5_pl_15[ , c(1, 3, 4, 5)]
setosa_data_sl_5_pl_15
iris

Plot

Scatter plot

plot(iris$sepal.length, iris$sepal.width)

variety_color = as.numeric(factor(iris$variety))
plot(iris$sepal.length, iris$sepal.width,
     col = variety_color,
     pch = 3,
     cex = 2,
     xlim = c(2, 10),
     ylim = c(1, 6),
     xlab = substitute(paste(bold("Sepal Length"))) ,
     ylab = "Sepal Width",
     main = "Visualization of Sepal Length and Sepal Width",
     col.main = 'blue',
     col.axis = 'red',
     col.lab = 'green',
     cex.main = 1.5,
     cex.axis = 2,
     cex.lab = 1.5,
     
    )

Line plot


exam_score = data.frame(
  ID = c(1, 2, 3, 4, 5),
  Name = c("Alice", "Bob", "David", "John", "Jenny"),
  Age = c(20, 25, 30, 22, 18),
  score = c(100, 78, 90, 55, 81)
)


plot(exam_score$ID, exam_score$score, type = "l")

hist(iris$sepal.width, main = "Histogram plot", xlab = "Sepal Length", col = "blue")

boxplot(iris$sepal.length, ylab = 'length' , xlab='Sepal', main='Box plot', col = 'red')

boxplot(iris$petal.length, ylab = 'length' , xlab='Sepal', main='Box plot', col = 'red')

GGPLOT

library(ggplot2)

ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) 

Color set

library(ggplot2)

ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) + 
  scale_color_manual(values = c("Setosa" = "blue", "Versicolor" = "pink", "Virginica" = "purple"))

label

library(ggplot2)

ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) + 
  scale_color_manual(values = c("Setosa" = "blue", "Versicolor" = "pink", "Virginica" = "purple")) +
  labs(title = "This plot is created using ggplot",
       x = "Length",
       y = "Width",
       caption = "Source: Iris dataset")

NA

Theme

library(ggplot2)

ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) + 
  
  scale_color_manual(values = c("Setosa" = "blue", "Versicolor" = "pink", "Virginica" = "purple")) +
  
  labs(title = "This plot is created using ggplot",
       x = "Length",
       y = "Width",
       caption = "Source: Iris dataset") + 
  
  theme_minimal()

NA
NA
NA
NA

Legend position

library(ggplot2)

ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) + 
  
  scale_color_manual(values = c("Setosa" = "blue", "Versicolor" = "pink", "Virginica" = "purple")) +
  
  labs(title = "This plot is created using ggplot",
       x = "Length",
       y = "Width",
       caption = "Source: Iris dataset") + 
  
  theme(
    legend.position = "top", # top, left, right, bottom
  )

NA

Text

library(ggplot2)

ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) + 
  
  scale_color_manual(values = c("Setosa" = "blue", "Versicolor" = "pink", "Virginica" = "purple")) +
  
  labs(title = "This plot is created using ggplot",
       x = "Length",
       y = "Width",
       caption = "Source: Iris dataset") + 
  
  theme(
    legend.position = "top", # top, left, right, bottom
    text = element_text(colour = 'black', size = 15),
    axis.text.x = element_text(color = "blue", size = 16),
    axis.text.y = element_text(color = "red", size = 12)
    
  )

NA

Image save


library(ggplot2)

scatter_plot = ggplot(iris, aes(x = sepal.length, y = sepal.width, color = variety)) +
  geom_point(size = 2) + 
  
  scale_color_manual(values = c("Setosa" = "blue", "Versicolor" = "pink", "Virginica" = "purple")) +
  
  labs(title = "This plot is created using ggplot",
       x = "Length",
       y = "Width",
       caption = "Source: Iris dataset") + 
  
  theme(
    legend.position = "top", # top, left, right, bottom
    text = element_text(colour = 'black', size = 15),
    axis.text.x = element_text(color = "blue", size = 16),
    axis.text.y = element_text(color = "red", size = 12)
  )

  
scatter_plot

ggsave("scatter_plot_500dpi.png", plot=scatter_plot, dpi = 500)
Saving 7.29 x 4.51 in image

Boxplot

ggplot(data = iris, aes(x= variety, y = sepal.length, fill = variety)) + 
  geom_boxplot() +
  labs(title = "This plot is created using ggplot",
       x = "Class",
       y = "Sepal Length",
       caption = "Source: Iris dataset")

LS0tCnRpdGxlOiAiQ2xhc3MgMyIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCgpgYGB7cn0KIyBkb3dubG9hZCBkYXRhCiMgdW56aXAgZGF0YXNldAojIGNvcHkgdG8gdGhlIHdvcmtpbmcgZGlyZWN0b3J5CiMgbG9hZCBkYXRhCgppcmlzID0gcmVhZC5jc3YoJ2lyaXMuY3N2JykKaXJpcwpgYGAKCiMjIHNlbGVjdCBhIHBhcnRpY3VsYXIgY2xhc3MKYGBge3J9CnNldG9zYV9kYXRhID0gaXJpc1tpcmlzJHZhcmlldHkgPT0gICdTZXRvc2EnLCBdCnNldG9zYV9kYXRhCmBgYAoKYGBge3J9CnNldG9zYV9kYXRhX3NsXzUgPSBzZXRvc2FfZGF0YVtzZXRvc2FfZGF0YSRzZXBhbC5sZW5ndGggPj0gNS4wLCBdCnNldG9zYV9kYXRhX3NsXzUKYGBgCgpgYGB7cn0Kc2V0b3NhX2RhdGFfc2xfNV9wbF8xNSA9IHNldG9zYV9kYXRhX3NsXzVbc2V0b3NhX2RhdGFfc2xfNSRwZXRhbC5sZW5ndGggPj0gMS41LCBdCnNldG9zYV9kYXRhX3NsXzVfcGxfMTUKYGBgCgoKYGBge3J9CnNldG9zYV9kYXRhX3NsXzVfcGxfMTUgPSBzZXRvc2FfZGF0YV9zbF81X3BsXzE1WyAsIGMoMSwgMywgNCwgNSldCnNldG9zYV9kYXRhX3NsXzVfcGxfMTUKYGBgCgoKYGBge3J9CmlyaXMKYGBgCiMgUGxvdAoKIyMgU2NhdHRlciBwbG90CmBgYHtyfQpwbG90KGlyaXMkc2VwYWwubGVuZ3RoLCBpcmlzJHNlcGFsLndpZHRoKQpgYGAKCmBgYHtyfQp2YXJpZXR5X2NvbG9yID0gYXMubnVtZXJpYyhmYWN0b3IoaXJpcyR2YXJpZXR5KSkKcGxvdChpcmlzJHNlcGFsLmxlbmd0aCwgaXJpcyRzZXBhbC53aWR0aCwKICAgICBjb2wgPSB2YXJpZXR5X2NvbG9yLAogICAgIAogICAgIHBjaCA9IDMsCiAgICAgY2V4ID0gMiwKICAgICAKICAgICB4bGltID0gYygyLCAxMCksCiAgICAgeWxpbSA9IGMoMSwgNiksCiAgICAgCiAgICAgeGxhYiA9IHN1YnN0aXR1dGUocGFzdGUoYm9sZCgiU2VwYWwgTGVuZ3RoIikpKSAsCiAgICAgeWxhYiA9ICJTZXBhbCBXaWR0aCIsCiAgICAgCiAgICAgbWFpbiA9ICJWaXN1YWxpemF0aW9uIG9mIFNlcGFsIExlbmd0aCBhbmQgU2VwYWwgV2lkdGgiLAogICAgIAogICAgIGNvbC5tYWluID0gJ2JsdWUnLAogICAgIGNvbC5heGlzID0gJ3JlZCcsCiAgICAgY29sLmxhYiA9ICdncmVlbicsCiAgICAgCiAgICAgY2V4Lm1haW4gPSAxLjUsCiAgICAgY2V4LmF4aXMgPSAyLAogICAgIGNleC5sYWIgPSAxLjUKICAgICkKYGBgCgojIyBMaW5lIHBsb3QKYGBge3J9CgpleGFtX3Njb3JlID0gZGF0YS5mcmFtZSgKICBJRCA9IGMoMSwgMiwgMywgNCwgNSksCiAgTmFtZSA9IGMoIkFsaWNlIiwgIkJvYiIsICJEYXZpZCIsICJKb2huIiwgIkplbm55IiksCiAgQWdlID0gYygyMCwgMjUsIDMwLCAyMiwgMTgpLAogIHNjb3JlID0gYygxMDAsIDc4LCA5MCwgNTUsIDgxKQopCgoKcGxvdChleGFtX3Njb3JlJElELCBleGFtX3Njb3JlJHNjb3JlLCB0eXBlID0gImwiKQpgYGAKCgpgYGB7cn0KaGlzdChpcmlzJHNlcGFsLndpZHRoLCBtYWluID0gIkhpc3RvZ3JhbSBwbG90IiwgeGxhYiA9ICJTZXBhbCBMZW5ndGgiLCBjb2wgPSAiYmx1ZSIpCmBgYAoKCgpgYGB7cn0KYm94cGxvdChpcmlzJHNlcGFsLmxlbmd0aCwgeWxhYiA9ICdsZW5ndGgnICwgeGxhYj0nU2VwYWwnLCBtYWluPSdCb3ggcGxvdCcsIGNvbCA9ICdyZWQnKQpib3hwbG90KGlyaXMkcGV0YWwubGVuZ3RoLCB5bGFiID0gJ2xlbmd0aCcgLCB4bGFiPSdTZXBhbCcsIG1haW49J0JveCBwbG90JywgY29sID0gJ3JlZCcpCmBgYAoKCiMgR0dQTE9UCgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQoKZ2dwbG90KGlyaXMsIGFlcyh4ID0gc2VwYWwubGVuZ3RoLCB5ID0gc2VwYWwud2lkdGgsIGNvbG9yID0gdmFyaWV0eSkpICsKICBnZW9tX3BvaW50KHNpemUgPSAyKSAKCmBgYAoKCgojIyBDb2xvciBzZXQKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCmdncGxvdChpcmlzLCBhZXMoeCA9IHNlcGFsLmxlbmd0aCwgeSA9IHNlcGFsLndpZHRoLCBjb2xvciA9IHZhcmlldHkpKSArCiAgZ2VvbV9wb2ludChzaXplID0gMikgKyAKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiU2V0b3NhIiA9ICJibHVlIiwgIlZlcnNpY29sb3IiID0gInBpbmsiLCAiVmlyZ2luaWNhIiA9ICJwdXJwbGUiKSkgCmBgYAoKCgoKIyMgbGFiZWwKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCmdncGxvdChpcmlzLCBhZXMoeCA9IHNlcGFsLmxlbmd0aCwgeSA9IHNlcGFsLndpZHRoLCBjb2xvciA9IHZhcmlldHkpKSArCiAgZ2VvbV9wb2ludChzaXplID0gMikgKyAKICAKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiU2V0b3NhIiA9ICJibHVlIiwgIlZlcnNpY29sb3IiID0gInBpbmsiLCAiVmlyZ2luaWNhIiA9ICJwdXJwbGUiKSkgKwogIAogIGxhYnModGl0bGUgPSAiVGhpcyBwbG90IGlzIGNyZWF0ZWQgdXNpbmcgZ2dwbG90IiwKICAgICAgIHggPSAiTGVuZ3RoIiwKICAgICAgIHkgPSAiV2lkdGgiLAogICAgICAgY2FwdGlvbiA9ICJTb3VyY2U6IElyaXMgZGF0YXNldCIpCiAgCmBgYAoKIyMgVGhlbWUKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCmdncGxvdChpcmlzLCBhZXMoeCA9IHNlcGFsLmxlbmd0aCwgeSA9IHNlcGFsLndpZHRoLCBjb2xvciA9IHZhcmlldHkpKSArCiAgZ2VvbV9wb2ludChzaXplID0gMikgKyAKICAKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiU2V0b3NhIiA9ICJibHVlIiwgIlZlcnNpY29sb3IiID0gInBpbmsiLCAiVmlyZ2luaWNhIiA9ICJwdXJwbGUiKSkgKwogIAogIGxhYnModGl0bGUgPSAiVGhpcyBwbG90IGlzIGNyZWF0ZWQgdXNpbmcgZ2dwbG90IiwKICAgICAgIHggPSAiTGVuZ3RoIiwKICAgICAgIHkgPSAiV2lkdGgiLAogICAgICAgY2FwdGlvbiA9ICJTb3VyY2U6IElyaXMgZGF0YXNldCIpICsgCiAgCiAgdGhlbWVfbWluaW1hbCgpICN0cmFuc3BhcmVudC93aGl0ZSBiYWNrZ3JvdW5kCiAgCmBgYAoKIyMgTGVnZW5kIHBvc2l0aW9uCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCgpnZ3Bsb3QoaXJpcywgYWVzKHggPSBzZXBhbC5sZW5ndGgsIHkgPSBzZXBhbC53aWR0aCwgY29sb3IgPSB2YXJpZXR5KSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIpICsgCiAgCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIlNldG9zYSIgPSAiYmx1ZSIsICJWZXJzaWNvbG9yIiA9ICJwaW5rIiwgIlZpcmdpbmljYSIgPSAicHVycGxlIikpICsKICAKICBsYWJzKHRpdGxlID0gIlRoaXMgcGxvdCBpcyBjcmVhdGVkIHVzaW5nIGdncGxvdCIsCiAgICAgICB4ID0gIkxlbmd0aCIsCiAgICAgICB5ID0gIldpZHRoIiwKICAgICAgIGNhcHRpb24gPSAiU291cmNlOiBJcmlzIGRhdGFzZXQiKSArIAogIAogIHRoZW1lKAogICAgbGVnZW5kLnBvc2l0aW9uID0gInRvcCIsICMgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tCiAgKQogIApgYGAKCiMjIFRleHQKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCmdncGxvdChpcmlzLCBhZXMoeCA9IHNlcGFsLmxlbmd0aCwgeSA9IHNlcGFsLndpZHRoLCBjb2xvciA9IHZhcmlldHkpKSArCiAgZ2VvbV9wb2ludChzaXplID0gMikgKyAKICAKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiU2V0b3NhIiA9ICJibHVlIiwgIlZlcnNpY29sb3IiID0gInBpbmsiLCAiVmlyZ2luaWNhIiA9ICJwdXJwbGUiKSkgKwogIAogIGxhYnModGl0bGUgPSAiVGhpcyBwbG90IGlzIGNyZWF0ZWQgdXNpbmcgZ2dwbG90IiwKICAgICAgIHggPSAiTGVuZ3RoIiwKICAgICAgIHkgPSAiV2lkdGgiLAogICAgICAgY2FwdGlvbiA9ICJTb3VyY2U6IElyaXMgZGF0YXNldCIpICsgCiAgCiAgdGhlbWUoCiAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIiwgIyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20KICAgIHRleHQgPSBlbGVtZW50X3RleHQoY29sb3VyID0gJ2JsYWNrJywgc2l6ZSA9IDE1KSwKICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsdWUiLCBzaXplID0gMTYpLAogICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAicmVkIiwgc2l6ZSA9IDEyKQogICkKICAKYGBgCgojIyBJbWFnZSBzYXZlCmBgYHtyfQoKbGlicmFyeShnZ3Bsb3QyKQoKc2NhdHRlcl9wbG90ID0gZ2dwbG90KGlyaXMsIGFlcyh4ID0gc2VwYWwubGVuZ3RoLCB5ID0gc2VwYWwud2lkdGgsIGNvbG9yID0gdmFyaWV0eSkpICsKICBnZW9tX3BvaW50KHNpemUgPSAyKSArIAogIAogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJTZXRvc2EiID0gImJsdWUiLCAiVmVyc2ljb2xvciIgPSAicGluayIsICJWaXJnaW5pY2EiID0gInB1cnBsZSIpKSArCiAgCiAgbGFicyh0aXRsZSA9ICJUaGlzIHBsb3QgaXMgY3JlYXRlZCB1c2luZyBnZ3Bsb3QiLAogICAgICAgeCA9ICJMZW5ndGgiLAogICAgICAgeSA9ICJXaWR0aCIsCiAgICAgICBjYXB0aW9uID0gIlNvdXJjZTogSXJpcyBkYXRhc2V0IikgKyAKICAKICB0aGVtZSgKICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiLCAjIHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvdXIgPSAnYmxhY2snLCBzaXplID0gMTUpLAogICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmx1ZSIsIHNpemUgPSAxNiksCiAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJyZWQiLCBzaXplID0gMTIpCiAgKQoKc2NhdHRlcl9wbG90CgpnZ3NhdmUoInNjYXR0ZXJfcGxvdF81MDBkcGkucG5nIiwgcGxvdD1zY2F0dGVyX3Bsb3QsIGRwaSA9IDUwMCkKYGBgCiMgQm94cGxvdAoKYGBge3J9CmdncGxvdChkYXRhID0gaXJpcywgYWVzKHg9IHZhcmlldHksIHkgPSBzZXBhbC5sZW5ndGgsIGZpbGwgPSB2YXJpZXR5KSkgKyAKICBnZW9tX2JveHBsb3QoKSArCiAgbGFicyh0aXRsZSA9ICJUaGlzIHBsb3QgaXMgY3JlYXRlZCB1c2luZyBnZ3Bsb3QiLAogICAgICAgeCA9ICJDbGFzcyIsCiAgICAgICB5ID0gIlNlcGFsIExlbmd0aCIsCiAgICAgICBjYXB0aW9uID0gIlNvdXJjZTogSXJpcyBkYXRhc2V0IikKYGBgCgo=