Visualization
- Bar
- Pie
- Line graph
- Box plot
- Different type of curves
- Heatmap
- scatter plot
- histogram
iris = read.csv("../datasets/iris.csv")
iris
Boxplot
library(ggplot2)
ggplot(data = iris, aes(x = variety, y=sepal.length, fill = variety)) +
geom_boxplot() +
scale_fill_manual(values = c("Setosa" = "orange", "Versicolor" = "purple", "Virginica" = "green"))+ # fix this later
labs(title = "Box plot of Iris dataset", y = "Sepal Length", x = "Species") +
theme_minimal()

Violin plot
ggplot(data = iris, aes(x = variety, y=sepal.length, fill = variety)) +
geom_violin()+
scale_fill_manual(values = c("Setosa" = "orange", "Versicolor" = "purple", "Virginica" = "green"))+ # fix this later
labs(title = "Box plot of Iris dataset", y = "Sepal Length", x = "Species") +
theme_minimal()

ggplot(data = iris, aes(x = variety, y=sepal.length, color = variety)) +
geom_point() +
scale_color_manual(values = c("Setosa" = "orange", "Versicolor" = "purple", "Virginica" = "green"))+ # fix this later
theme_minimal()

ggplot(data = iris, aes(x = petal.length, y=sepal.length, color = variety)) +
geom_point() +
theme_minimal()

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

summary(iris)
sepal.length sepal.width petal.length petal.width variety
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 Length:150
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Class :character
Median :5.800 Median :3.000 Median :4.350 Median :1.300 Mode :character
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
ggplot(data = iris, aes(x = variety, fill = variety) ) +
geom_bar() +
theme_minimal()

ggplot(data = iris, aes(x = "", fill = variety)) +
geom_bar(stat = "count") +
coord_polar(theta = "y") +
theme_minimal()

Heat map
cor_mat = cor(iris[ ,1:4])
cor_mat
sepal.length sepal.width petal.length petal.width
sepal.length 1.0000000 -0.1175698 0.8717538 0.8179411
sepal.width -0.1175698 1.0000000 -0.4284401 -0.3661259
petal.length 0.8717538 -0.4284401 1.0000000 0.9628654
petal.width 0.8179411 -0.3661259 0.9628654 1.0000000
library(ggcorrplot)
ggcorrplot(cor_mat)

ggcorrplot(cor_mat, type="lower")

ggcorrplot(cor_mat, type="lower", lab = TRUE)

ggcorrplot(cor_mat, type="upper", lab = TRUE)

ggcorrplot(cor_mat, type="upper", lab = TRUE, colors = c("red", "white", "skyblue"))

time series data visulization - curve graph
time = seq(1, 150)
time
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
[29] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
[57] 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
[85] 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
[113] 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
[141] 141 142 143 144 145 146 147 148 149 150
iris = cbind(iris, time)
iris
ggplot(iris, aes(x = time, y = sepal.length, color = variety)) +
geom_line() +
theme_minimal()

time50 = seq(1, 50)
time150 = c(time50, time50, time50)
time150
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
[38] 38 39 40 41 42 43 44 45 46 47 48 49 50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
[75] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 1 2 3 4 5 6 7 8 9 10 11
[112] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
[149] 49 50
iris = cbind(iris, time150)
iris
ggplot(iris, aes(x = time150, y = sepal.length, color = variety)) +
geom_line() +
theme_minimal()

ggplot(iris, aes(x = sepal.length)) +
geom_histogram(fill = "lightblue", color="black", binwidth = 0.5)

library(GGally)
ggpairs(iris[ , 1:5], aes(color=variety))

iris_violin = ggplot(data = iris, aes(x = variety, y=sepal.length, fill = variety)) +
geom_violin()+
labs(title = "Box plot of Iris dataset", y = "Sepal Length", x = "Species") +
theme_minimal()
iris_violin

library(plotly)
ggplotly(iris_violin)
scatter_iris = ggplot(data = iris, aes(x = sepal.width, y=sepal.length, color = variety)) +
geom_point() +
theme_minimal()
ggplotly(scatter_iris)
line_iris = ggplot(iris, aes(x = time, y = sepal.length, color = variety)) +
geom_line() +
theme_minimal()
ggplotly(line_iris)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgojIyBWaXN1YWxpemF0aW9uIAoxLiBCYXIKMi4gUGllCjMuIExpbmUgZ3JhcGgKNC4gQm94IHBsb3QKNS4gRGlmZmVyZW50IHR5cGUgb2YgY3VydmVzCjYuIEhlYXRtYXAKNy4gc2NhdHRlciBwbG90CjguIGhpc3RvZ3JhbQoKYGBge3J9CmlyaXMgPSByZWFkLmNzdigiLi4vZGF0YXNldHMvaXJpcy5jc3YiKQppcmlzCmBgYAoKIyMjIEJveHBsb3QKYGBge3J9CgpsaWJyYXJ5KGdncGxvdDIpCgpnZ3Bsb3QoZGF0YSA9IGlyaXMsIGFlcyh4ID0gdmFyaWV0eSwgeT1zZXBhbC5sZW5ndGgsIGZpbGwgPSB2YXJpZXR5KSkgKyAKICBnZW9tX2JveHBsb3QoKSArIAogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoIlNldG9zYSIgPSAib3JhbmdlIiwgIlZlcnNpY29sb3IiID0gInB1cnBsZSIsICJWaXJnaW5pY2EiID0gImdyZWVuIikpKyAjIGZpeCB0aGlzIGxhdGVyCiAgbGFicyh0aXRsZSA9ICJCb3ggcGxvdCBvZiBJcmlzIGRhdGFzZXQiLCB5ID0gIlNlcGFsIExlbmd0aCIsIHggPSAiU3BlY2llcyIpICsgCiAgdGhlbWVfbWluaW1hbCgpCgpgYGAKCiMjIyBWaW9saW4gcGxvdAoKYGBge3J9CmdncGxvdChkYXRhID0gaXJpcywgYWVzKHggPSB2YXJpZXR5LCB5PXNlcGFsLmxlbmd0aCwgZmlsbCA9IHZhcmlldHkpKSArIAogIGdlb21fdmlvbGluKCkrIAogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoIlNldG9zYSIgPSAib3JhbmdlIiwgIlZlcnNpY29sb3IiID0gInB1cnBsZSIsICJWaXJnaW5pY2EiID0gImdyZWVuIikpKyAjIGZpeCB0aGlzIGxhdGVyCiAgbGFicyh0aXRsZSA9ICJCb3ggcGxvdCBvZiBJcmlzIGRhdGFzZXQiLCB5ID0gIlNlcGFsIExlbmd0aCIsIHggPSAiU3BlY2llcyIpICsgCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IGlyaXMsIGFlcyh4ID0gdmFyaWV0eSwgeT1zZXBhbC5sZW5ndGgsIGNvbG9yID0gdmFyaWV0eSkpICsgCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiU2V0b3NhIiA9ICJvcmFuZ2UiLCAiVmVyc2ljb2xvciIgPSAicHVycGxlIiwgIlZpcmdpbmljYSIgPSAiZ3JlZW4iKSkrICMgZml4IHRoaXMgbGF0ZXIKICB0aGVtZV9taW5pbWFsKCkKYGBgCgpgYGB7cn0KZ2dwbG90KGRhdGEgPSBpcmlzLCBhZXMoeCA9IHBldGFsLmxlbmd0aCwgeT1zZXBhbC5sZW5ndGgsIGNvbG9yID0gdmFyaWV0eSkpICsgCiAgZ2VvbV9wb2ludCgpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoKYGBge3J9CmdncGxvdChkYXRhID0gaXJpcywgYWVzKHggPSBzZXBhbC53aWR0aCwgeT1zZXBhbC5sZW5ndGgsIGNvbG9yID0gdmFyaWV0eSkpICsgCiAgZ2VvbV9wb2ludCgpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgpgYGB7cn0Kc3VtbWFyeShpcmlzKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IGlyaXMsIGFlcyh4ID0gdmFyaWV0eSwgZmlsbCA9IHZhcmlldHkpICkgKyAKICBnZW9tX2JhcigpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgpgYGB7cn0KZ2dwbG90KGRhdGEgPSBpcmlzLCBhZXMoeCA9ICIiLCBmaWxsID0gdmFyaWV0eSkpICsgCiAgZ2VvbV9iYXIoc3RhdCA9ICJjb3VudCIpICsgCiAgY29vcmRfcG9sYXIodGhldGEgPSAieSIpICsgCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKCgojIyMgSGVhdCBtYXAKCmBgYHtyfQpjb3JfbWF0ID0gY29yKGlyaXNbICwxOjRdKQpjb3JfbWF0CmBgYAoKYGBge3J9CmxpYnJhcnkoZ2djb3JycGxvdCkKZ2djb3JycGxvdChjb3JfbWF0KQpgYGAKCmBgYHtyfQpnZ2NvcnJwbG90KGNvcl9tYXQsIHR5cGU9Imxvd2VyIikKYGBgCgoKYGBge3J9CmdnY29ycnBsb3QoY29yX21hdCwgdHlwZT0ibG93ZXIiLCBsYWIgPSBUUlVFKQpgYGAKCmBgYHtyfQpnZ2NvcnJwbG90KGNvcl9tYXQsIHR5cGU9InVwcGVyIiwgbGFiID0gVFJVRSkKYGBgCgoKYGBge3J9CmdnY29ycnBsb3QoY29yX21hdCwgdHlwZT0idXBwZXIiLCBsYWIgPSBUUlVFLCBjb2xvcnMgPSBjKCJyZWQiLCAid2hpdGUiLCAic2t5Ymx1ZSIpKQpgYGAKCgoKIyMjIHRpbWUgc2VyaWVzIGRhdGEgdmlzdWxpemF0aW9uIC0gY3VydmUgZ3JhcGgKCmBgYHtyfQoKdGltZSA9IHNlcSgxLCAxNTApCnRpbWUKCmlyaXMgPSBjYmluZChpcmlzLCB0aW1lKQppcmlzCmBgYAoKCmBgYHtyfQpnZ3Bsb3QoaXJpcywgYWVzKHggPSB0aW1lLCB5ID0gc2VwYWwubGVuZ3RoLCBjb2xvciA9IHZhcmlldHkpKSArIAogIGdlb21fbGluZSgpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgpgYGB7cn0KdGltZTUwID0gc2VxKDEsIDUwKQp0aW1lMTUwID0gYyh0aW1lNTAsIHRpbWU1MCwgdGltZTUwKQp0aW1lMTUwCgoKaXJpcyA9IGNiaW5kKGlyaXMsIHRpbWUxNTApCmlyaXMKYGBgCgoKYGBge3J9CmdncGxvdChpcmlzLCBhZXMoeCA9IHRpbWUxNTAsIHkgPSBzZXBhbC5sZW5ndGgsIGNvbG9yID0gdmFyaWV0eSkpICsgCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCgoKYGBge3J9CmdncGxvdChpcmlzLCBhZXMoeCA9IHNlcGFsLmxlbmd0aCkpICsgCiAgZ2VvbV9oaXN0b2dyYW0oZmlsbCA9ICJsaWdodGJsdWUiLCBjb2xvcj0iYmxhY2siLCBiaW53aWR0aCA9IDAuNSkKYGBgCgoKCmBgYHtyfQpsaWJyYXJ5KEdHYWxseSkKCmdncGFpcnMoaXJpc1sgLCAxOjVdLCBhZXMoY29sb3I9dmFyaWV0eSkpCmBgYAoKCgoKCgpgYGB7cn0KaXJpc192aW9saW4gPSAgIGdncGxvdChkYXRhID0gaXJpcywgYWVzKHggPSB2YXJpZXR5LCB5PXNlcGFsLmxlbmd0aCwgZmlsbCA9IHZhcmlldHkpKSArIAogIGdlb21fdmlvbGluKCkrIAogIGxhYnModGl0bGUgPSAiQm94IHBsb3Qgb2YgSXJpcyBkYXRhc2V0IiwgeSA9ICJTZXBhbCBMZW5ndGgiLCB4ID0gIlNwZWNpZXMiKSArIAogIHRoZW1lX21pbmltYWwoKQoKaXJpc192aW9saW4KYGBgCgoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQoKZ2dwbG90bHkoaXJpc192aW9saW4pCmBgYAoKCgpgYGB7cn0Kc2NhdHRlcl9pcmlzID0gZ2dwbG90KGRhdGEgPSBpcmlzLCBhZXMoeCA9IHNlcGFsLndpZHRoLCB5PXNlcGFsLmxlbmd0aCwgY29sb3IgPSB2YXJpZXR5KSkgKyAKICBnZW9tX3BvaW50KCkgKwogIHRoZW1lX21pbmltYWwoKQoKCmdncGxvdGx5KHNjYXR0ZXJfaXJpcykKYGBgCgoKYGBge3J9CmxpbmVfaXJpcyA9IGdncGxvdChpcmlzLCBhZXMoeCA9IHRpbWUsIHkgPSBzZXBhbC5sZW5ndGgsIGNvbG9yID0gdmFyaWV0eSkpICsgCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lX21pbmltYWwoKQoKZ2dwbG90bHkobGluZV9pcmlzKQpgYGAKCgoKIyMgY2hvcmQgZGlhZ3JhbQojIyBnbG9iYWwgbWFwIHBsb3QK