iris = read.csv("iris.csv")
iris
library(ggplot2)
ggplot(iris, aes(x = sepal.length)) + geom_histogram(binwidth = 0.1, fill = "lightblue", color = "black", alpha = 0.7)+ labs(title = "Histogram of Sepal Length", x= "Sepal Length (cm)", y = "Frequency") +xlim(0,8) + ylim (0,10) +theme_minimal()

To know labs e ki ki function ache
?labs
Correlation Matrix
selectig col cause correlation matrix can be done only between
numerical variables/col, as here variety col is catagorical so not
considering it
cor_mat = cor(iris[ , c(1,2,3,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
Another way: if more columns & last col is character var than
col selection could be done with range
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
Description: Here sepal length and petal length are positively
correlated(if SL increases PL also increases, if SL decreases PL also
decreases) and relation type is strong , means they are strongly
correlated as 87%(0.8717 near to 1). Again, SL and SW shows neg corr.(
ekta barle arekta kome), and weak correlation as only 11%(0.1175 far
from 1). Also diagoal wise SL ad SL (nijer sathe nijer corr) corr 1
means 100% correlated
Visualization of correlation
Heat map
library(ggcorrplot)
ggcorrplot(cor_mat)

Des: here 1 to -1 means Correlatio color strength, whitish color(0.0)
means negative weak relation(ex: between sepal length & width),
light bluish (-.5) means negative srong relation, deep red (1)means
positive strong relation # Here in correlation, if (ex: similar sepal
length & sepal length corr 1 means diagonal)diagonal er upor r niche
same info(corr) . mane uper & lower triangle same hoy. pulication or
presentation e ekta triangle e easily dekhate chaile
Lower tiangle (standard way)
ggcorrplot(cor_mat, type = "lower")

ggcorrplot(cor_mat, type = "upper")

if want to change color & add correlatio exact value
ggcorrplot(cor_mat, type = "upper", colors = c("green", "white", "pink"), lab = TRUE)

DES: to add value lab diye true dbo, bt default eta false thake
If do ot want to show code after upload chunk er upore echo false
dbo

Pair plot
to show all attributes and plots like scatter plot, boxplot ,
histogram) together
library(GGally)
ggpairs(iris, aes(color = variety))

des: right side e boxplot show krce , 2nd,3rd,4th row te scatter plot
show , last plot e histogram show hcche
Interactive plot ( 3D plot)
paper er kaje ggplot tai lage. iteractive plot drkr ni as 3d way te
paper e dekhano jayna ggplot diye ja ja kora jay interactive plot diyeo
sob kra jay
library(plotly)
plot_ly(data = iris, x = ~sepal.length, y = ~sepal.width, z = ~petal.length, color = ~variety, type = "scatter3d", mode = "markets" )
Des: 3d plot so 3 ta variable iye x,y,z nbo.type e kon plot chai ta
dbo. R 3d plot ta zoom in out kre dekhte paro . each point e click krle
dekhbo each type of flower er x,y,z mane j 3 ta var nilm.(x er por tilde
sign shift diye 1 er left ta click)
3D violi plot
plot_ly(data = iris, y = ~sepal.length, type = "violin")
Des: here vilion plot e ekta var thake so only y nlm. eta diye kothay
kto value exact dekha jay also density(kde) ,mane for exmpl y=5.8 e kde
1 mane 5.8 size er sepal length er poriman sob cheye beshi , so median
5.8 show hcche mane jekahne info distibution sob theke beshi setai
median . # if so gulo chai variety
plot_ly(data = iris, y = ~sepal.length, type = "violin", x = ~variety)
Boxplot
plot_ly(data = iris, y= ~sepal.length, x= ~variety, type= "box" )
Des: for exp here in virginia median 6.5 means sepal length size 6.5
beshi ae flower e , mane distribution beshi q1, q3 mane 25% er size 6.2,
6.9 r median 50% er size 6.5
Limitatios of 3d plot
using 3d plot we can not show more than 3 feature/variables . so to
show more features we can use PCA. PCA diye koekta feature k convert
koire 2 ta mportant feature hisee show krte pari
PCA(principle component analysis)
library(stats)
iris_pca = prcomp(iris[ , 1:4], center = TRUE, scale = TRUE)
iris_pca
Standard deviations (1, .., p=4):
[1] 1.7083611 0.9560494 0.3830886 0.1439265
Rotation (n x k) = (4 x 4):
PC1 PC2 PC3 PC4
sepal.length 0.5210659 -0.37741762 0.7195664 0.2612863
sepal.width -0.2693474 -0.92329566 -0.2443818 -0.1235096
petal.length 0.5804131 -0.02449161 -0.1421264 -0.8014492
petal.width 0.5648565 -0.06694199 -0.6342727 0.5235971
TO COMPAre easily doing centaring( full distribution k zero te niye
ashe) and scaling( range-1 to 1 e niye asbe) # in Statistical analysis
summary is important , not exact value. so running summary
library(stats)
iris_pca = prcomp(iris[ , 1:4])
summary(iris_pca)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 2.0563 0.49262 0.2797 0.15439
Proportion of Variance 0.9246 0.05307 0.0171 0.00521
Cumulative Proportion 0.9246 0.97769 0.9948 1.00000
des: here POV means 92% data can be represented with PC1, pc2
represent 5.3% data(so etar importance kom, aste aste komte thake ) CP
means 1 ta pca nile 92% data represent kra jay 2 ta nile 97% and so on .
normally min 2 ta PC niye kaj kri or max 3 ta (depend on task )
#Now will convert to data frame and do 2D plot
pc_score= as.data.frame(iris_pca$x[ , c(1,2)])
pc_score
#to show data info adding one new col named variety
pc_data = cbind(pc_score, variety = iris$variety)
pc_data
library(ggplot2)
ggplot(pc_data,aes(PC1,PC2 ,color = variety))+
geom_point()+
theme_minimal()

des: here pc1 & pc2 both center in 0 as we did centering, setosa
nature is different from other 2 variety so pca is needed to convert
from high dimensio into low dimension
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0KaXJpcyA9IHJlYWQuY3N2KCJpcmlzLmNzdiIpCmlyaXMKYGBgCgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoaXJpcywgYWVzKHggPSBzZXBhbC5sZW5ndGgpKSArIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC4xLCBmaWxsID0gImxpZ2h0Ymx1ZSIsIGNvbG9yID0gImJsYWNrIiwgYWxwaGEgPSAwLjcpKyBsYWJzKHRpdGxlID0gIkhpc3RvZ3JhbSBvZiBTZXBhbCBMZW5ndGgiLCB4PSAiU2VwYWwgTGVuZ3RoIChjbSkiLCB5ID0gIkZyZXF1ZW5jeSIpICt4bGltKDAsOCkgKyB5bGltICgwLDEwKSArdGhlbWVfbWluaW1hbCgpCmBgYAojIFRvIGtub3cgbGFicyBlIGtpIGtpIGZ1bmN0aW9uIGFjaGUKYGBge3J9Cj9sYWJzCmBgYAojIENvcnJlbGF0aW9uIE1hdHJpeAojIyBzZWxlY3RpZyBjb2wgY2F1c2UgY29ycmVsYXRpb24gbWF0cml4IGNhbiBiZSBkb25lIG9ubHkgYmV0d2VlbiBudW1lcmljYWwgdmFyaWFibGVzL2NvbCwgYXMgaGVyZSB2YXJpZXR5IGNvbCBpcyBjYXRhZ29yaWNhbCBzbyBub3QgY29uc2lkZXJpbmcgaXQgCmBgYHtyfQpjb3JfbWF0ID0gY29yKGlyaXNbICwgYygxLDIsMyw0KV0pCmNvcl9tYXQKYGBgCiMjIEFub3RoZXIgd2F5OiBpZiBtb3JlIGNvbHVtbnMgJiBsYXN0IGNvbCBpcyBjaGFyYWN0ZXIgdmFyIHRoYW4gY29sIHNlbGVjdGlvbiBjb3VsZCBiZSBkb25lIHdpdGggcmFuZ2UKYGBge3J9CmNvcl9tYXQgPSBjb3IoaXJpc1sgLCAxOjRdKQpjb3JfbWF0CmBgYApEZXNjcmlwdGlvbjogSGVyZSBzZXBhbCBsZW5ndGggYW5kIHBldGFsIGxlbmd0aCBhcmUgcG9zaXRpdmVseSBjb3JyZWxhdGVkKGlmIFNMIGluY3JlYXNlcyBQTCBhbHNvIGluY3JlYXNlcywgaWYgU0wgZGVjcmVhc2VzIFBMIGFsc28gZGVjcmVhc2VzKSAgYW5kIHJlbGF0aW9uIHR5cGUgaXMgc3Ryb25nICwgbWVhbnMgdGhleSBhcmUgc3Ryb25nbHkgY29ycmVsYXRlZCBhcyA4NyUoMC44NzE3IG5lYXIgdG8gMSkuCkFnYWluLCBTTCBhbmQgU1cgc2hvd3MgbmVnIGNvcnIuKCBla3RhIGJhcmxlIGFyZWt0YSBrb21lKSwgYW5kIHdlYWsgY29ycmVsYXRpb24gYXMgb25seSAxMSUoMC4xMTc1IGZhciBmcm9tIDEpLiBBbHNvIGRpYWdvYWwgd2lzZSBTTCBhZCBTTCAobmlqZXIgc2F0aGUgbmlqZXIgY29ycikgY29yciAxIG1lYW5zIDEwMCUgY29ycmVsYXRlZAoKIyBWaXN1YWxpemF0aW9uIG9mIGNvcnJlbGF0aW9uCiMjIEhlYXQgbWFwCmBgYHtyfQpsaWJyYXJ5KGdnY29ycnBsb3QpCmdnY29ycnBsb3QoY29yX21hdCkKYGBgCkRlczogaGVyZSAxIHRvIC0xIG1lYW5zIENvcnJlbGF0aW8gY29sb3Igc3RyZW5ndGgsIHdoaXRpc2ggY29sb3IoMC4wKSBtZWFucyBuZWdhdGl2ZSB3ZWFrIHJlbGF0aW9uKGV4OiBiZXR3ZWVuIHNlcGFsIGxlbmd0aCAmIHdpZHRoKSwgbGlnaHQgYmx1aXNoICgtLjUpIG1lYW5zIG5lZ2F0aXZlIHNyb25nIHJlbGF0aW9uLCBkZWVwIHJlZCAoMSltZWFucyBwb3NpdGl2ZSBzdHJvbmcgcmVsYXRpb24KIyBIZXJlIGluIGNvcnJlbGF0aW9uLCBpZiAoZXg6IHNpbWlsYXIgc2VwYWwgbGVuZ3RoICYgc2VwYWwgbGVuZ3RoIGNvcnIgMSBtZWFucyBkaWFnb25hbClkaWFnb25hbCBlciB1cG9yIHIgbmljaGUgc2FtZSBpbmZvKGNvcnIpIC4gbWFuZSB1cGVyICYgbG93ZXIgdHJpYW5nbGUgc2FtZSBob3kuIHB1bGljYXRpb24gb3IgcHJlc2VudGF0aW9uIGUgZWt0YSB0cmlhbmdsZSBlIGVhc2lseSBkZWtoYXRlIGNoYWlsZQoKIyBMb3dlciB0aWFuZ2xlIChzdGFuZGFyZCB3YXkpCmBgYHtyfQpnZ2NvcnJwbG90KGNvcl9tYXQsIHR5cGUgPSAibG93ZXIiKQpgYGAKCmBgYHtyfQpnZ2NvcnJwbG90KGNvcl9tYXQsIHR5cGUgPSAidXBwZXIiKQpgYGAKIyBpZiB3YW50IHRvIGNoYW5nZSBjb2xvciAmIGFkZCBjb3JyZWxhdGlvIGV4YWN0IHZhbHVlIApgYGB7cn0KZ2djb3JycGxvdChjb3JfbWF0LCB0eXBlID0gInVwcGVyIiwgY29sb3JzID0gYygiZ3JlZW4iLCAid2hpdGUiLCAicGluayIpLCBsYWIgPSBUUlVFKQpgYGAKREVTOiB0byBhZGQgdmFsdWUgbGFiIGRpeWUgdHJ1ZSBkYm8sIGJ0IGRlZmF1bHQgZXRhIGZhbHNlIHRoYWtlCgojIElmIGRvIG90IHdhbnQgdG8gc2hvdyBjb2RlIGFmdGVyIHVwbG9hZCBjaHVuayBlciB1cG9yZSBlY2hvIGZhbHNlIGRibwoKYGBge3IsIGVjaG89RkFMU0V9CmdnY29ycnBsb3QoY29yX21hdCwgdHlwZSA9ICJ1cHBlciIsIGNvbG9ycyA9IGMoImdyZWVuIiwgIndoaXRlIiwgInBpbmsiKSwgbGFiID0gVFJVRSkKYGBgCiMgUGFpciBwbG90CnRvIHNob3cgYWxsIGF0dHJpYnV0ZXMgYW5kIHBsb3RzIGxpa2Ugc2NhdHRlciBwbG90LCBib3hwbG90ICwgaGlzdG9ncmFtKSB0b2dldGhlcgpgYGB7cn0KbGlicmFyeShHR2FsbHkpCmdncGFpcnMoaXJpcywgYWVzKGNvbG9yID0gdmFyaWV0eSkpCmBgYAoKZGVzOiByaWdodCBzaWRlIGUgYm94cGxvdCBzaG93IGtyY2UgLCAybmQsM3JkLDR0aCByb3cgdGUgc2NhdHRlciBwbG90IHNob3cgLCBsYXN0IHBsb3QgZSBoaXN0b2dyYW0gc2hvdyBoY2NoZQoKIyBJbnRlcmFjdGl2ZSBwbG90ICggM0QgcGxvdCkKcGFwZXIgZXIga2FqZSBnZ3Bsb3QgdGFpIGxhZ2UuIGl0ZXJhY3RpdmUgcGxvdCBkcmtyIG5pIGFzIDNkIHdheSB0ZSBwYXBlciBlIGRla2hhbm8gamF5bmEKZ2dwbG90IGRpeWUgamEgamEga29yYSBqYXkgaW50ZXJhY3RpdmUgcGxvdCBkaXllbyBzb2Iga3JhIGpheQoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQpwbG90X2x5KGRhdGEgPSBpcmlzLCB4ID0gfnNlcGFsLmxlbmd0aCwgeSA9IH5zZXBhbC53aWR0aCwgeiA9IH5wZXRhbC5sZW5ndGgsIGNvbG9yID0gfnZhcmlldHksIHR5cGUgPSAic2NhdHRlcjNkIiwgbW9kZSA9ICJtYXJrZXRzIiApCmBgYApEZXM6IDNkIHBsb3Qgc28gMyB0YSB2YXJpYWJsZSBpeWUgeCx5LHogbmJvLnR5cGUgZSBrb24gcGxvdCBjaGFpIHRhIGRiby4gUiAzZCBwbG90IHRhIHpvb20gaW4gb3V0IGtyZSBkZWtodGUgcGFybyAuIGVhY2ggcG9pbnQgZSBjbGljayBrcmxlIGRla2hibyBlYWNoIHR5cGUgb2YgZmxvd2VyIGVyIHgseSx6IG1hbmUgaiAzIHRhIHZhciBuaWxtLih4IGVyIHBvciB0aWxkZSBzaWduIHNoaWZ0IGRpeWUgMSBlciBsZWZ0IHRhIGNsaWNrKSAKCiMgM0QgdmlvbGkgcGxvdApgYGB7cn0KcGxvdF9seShkYXRhID0gaXJpcywgeSA9IH5zZXBhbC5sZW5ndGgsIHR5cGUgPSAidmlvbGluIikKYGBgCkRlczogaGVyZSB2aWxpb24gcGxvdCBlIGVrdGEgdmFyIHRoYWtlIHNvIG9ubHkgeSBubG0uIGV0YSBkaXllIGtvdGhheSBrdG8gdmFsdWUgZXhhY3QgZGVraGEgamF5IGFsc28gZGVuc2l0eShrZGUpICxtYW5lIGZvciBleG1wbCB5PTUuOCBlIGtkZSAxIG1hbmUgNS44IHNpemUgZXIgc2VwYWwgbGVuZ3RoIGVyIHBvcmltYW4gc29iIGNoZXllIGJlc2hpICwgc28gbWVkaWFuIDUuOCBzaG93IGhjY2hlIG1hbmUgamVrYWhuZSBpbmZvIGRpc3RpYnV0aW9uIHNvYiB0aGVrZSBiZXNoaSBzZXRhaSBtZWRpYW4gLgojIGlmIHNvIGd1bG8gY2hhaSB2YXJpZXR5CmBgYHtyfQpwbG90X2x5KGRhdGEgPSBpcmlzLCB5ID0gfnNlcGFsLmxlbmd0aCwgdHlwZSA9ICJ2aW9saW4iLCB4ID0gfnZhcmlldHkpCmBgYAoKCiMgQm94cGxvdApgYGB7cn0KcGxvdF9seShkYXRhID0gaXJpcywgeT0gfnNlcGFsLmxlbmd0aCwgeD0gfnZhcmlldHksIHR5cGU9ICJib3giICkKYGBgCkRlczogZm9yIGV4cCBoZXJlIGluIHZpcmdpbmlhIG1lZGlhbiA2LjUgbWVhbnMgc2VwYWwgbGVuZ3RoIHNpemUgNi41IGJlc2hpICBhZSBmbG93ZXIgZSAsIG1hbmUgZGlzdHJpYnV0aW9uIGJlc2hpIHExLCBxMyBtYW5lIDI1JSBlciBzaXplIDYuMiwgNi45IHIgbWVkaWFuIDUwJSBlciBzaXplIDYuNQoKCiMjIExpbWl0YXRpb3Mgb2YgM2QgcGxvdAp1c2luZyAzZCBwbG90IHdlIGNhbiBub3Qgc2hvdyBtb3JlIHRoYW4gMyBmZWF0dXJlL3ZhcmlhYmxlcyAuIHNvIHRvIHNob3cgbW9yZSBmZWF0dXJlcyB3ZSBjYW4gdXNlIFBDQS4gUENBIGRpeWUga29la3RhIGZlYXR1cmUgayBjb252ZXJ0IGtvaXJlIDIgdGEgbXBvcnRhbnQgZmVhdHVyZSBoaXNlZSBzaG93IGtydGUgcGFyaQoKIyMgUENBKHByaW5jaXBsZSBjb21wb25lbnQgYW5hbHlzaXMpCmBgYHtyfQpsaWJyYXJ5KHN0YXRzKQppcmlzX3BjYSA9IHByY29tcChpcmlzWyAsIDE6NF0sIGNlbnRlciA9IFRSVUUsIHNjYWxlID0gVFJVRSkKaXJpc19wY2EKYGBgClRPIENPTVBBcmUgZWFzaWx5IGRvaW5nIGNlbnRhcmluZyggZnVsbCBkaXN0cmlidXRpb24gayB6ZXJvIHRlIG5peWUgYXNoZSkgYW5kIHNjYWxpbmcoIHJhbmdlLTEgdG8gMSBlIG5peWUgYXNiZSkKIyBpbiBTdGF0aXN0aWNhbCBhbmFseXNpcyBzdW1tYXJ5IGlzIGltcG9ydGFudCAsIG5vdCBleGFjdCB2YWx1ZS4gc28gcnVubmluZyBzdW1tYXJ5CmBgYHtyfQpsaWJyYXJ5KHN0YXRzKQppcmlzX3BjYSA9IHByY29tcChpcmlzWyAsIDE6NF0pCnN1bW1hcnkoaXJpc19wY2EpCmBgYApkZXM6IGhlcmUgUE9WIG1lYW5zIDkyJSBkYXRhIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIFBDMSwgcGMyIHJlcHJlc2VudCA1LjMlIGRhdGEoc28gZXRhciBpbXBvcnRhbmNlIGtvbSwgYXN0ZSBhc3RlIGtvbXRlIHRoYWtlICApCkNQIG1lYW5zIDEgdGEgcGNhIG5pbGUgOTIlIGRhdGEgcmVwcmVzZW50IGtyYSBqYXkgMiB0YSBuaWxlIDk3JSBhbmQgc28gb24gLiBub3JtYWxseSBtaW4gMiB0YSBQQyBuaXllIGthaiBrcmkgb3IgbWF4IDMgdGEgKGRlcGVuZCBvbiB0YXNrICkKCiNOb3cgd2lsbCBjb252ZXJ0IHRvIGRhdGEgZnJhbWUgYW5kIGRvIDJEIHBsb3QKYGBge3J9CnBjX3Njb3JlPSBhcy5kYXRhLmZyYW1lKGlyaXNfcGNhJHhbICwgYygxLDIpXSkKcGNfc2NvcmUKYGBgCiN0byBzaG93IGRhdGEgaW5mbyBhZGRpbmcgb25lIG5ldyBjb2wgbmFtZWQgdmFyaWV0eQpgYGB7cn0KcGNfZGF0YSA9IGNiaW5kKHBjX3Njb3JlLCB2YXJpZXR5ID0gaXJpcyR2YXJpZXR5KQpwY19kYXRhCmBgYApgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QocGNfZGF0YSxhZXMoUEMxLFBDMiAsY29sb3IgPSB2YXJpZXR5KSkrCiAgZ2VvbV9wb2ludCgpKwogIHRoZW1lX21pbmltYWwoKQoKYGBgCmRlczogaGVyZSBwYzEgJiBwYzIgYm90aCBjZW50ZXIgaW4gMCBhcyB3ZSBkaWQgY2VudGVyaW5nLCBzZXRvc2EgbmF0dXJlIGlzIGRpZmZlcmVudCBmcm9tIG90aGVyIDIgdmFyaWV0eSAKc28gcGNhIGlzIG5lZWRlZCB0byBjb252ZXJ0IGZyb20gaGlnaCBkaW1lbnNpbyBpbnRvIGxvdyBkaW1lbnNpb24g