In [1]:
iris <- read.csv('data/iris.csv')
names(iris) <- c("SepalLength", "SepalWidth", "PetalLength", "PetalWidth", "Name")
head(iris)


SepalLengthSepalWidthPetalLengthPetalWidthName
15.1 3.5 1.4 0.2 Iris-setosa
24.9 3 1.4 0.2 Iris-setosa
34.7 3.2 1.3 0.2 Iris-setosa
44.6 3.1 1.5 0.2 Iris-setosa
55 3.6 1.4 0.2 Iris-setosa
65.4 3.9 1.7 0.4 Iris-setosa

In [2]:
summary(iris)


  SepalLength      SepalWidth     PetalLength      PetalWidth   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.054   Mean   :3.759   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  
              Name   
 Iris-setosa    :50  
 Iris-versicolor:50  
 Iris-virginica :50  
                     
                     
                     

In [3]:
setosa <- iris[iris$Name == "Iris-setosa",]
"Iris setosa"
summary(setosa)

versicolor <- iris[iris$Name == "Iris-versicolor",]
"Iris versicolor"
summary(versicolor)

virginica <- iris[iris$Name == "Iris-virginica",]
"Iris virginica"
summary(virginica)


'Iris setosa'
  SepalLength      SepalWidth     PetalLength      PetalWidth   
 Min.   :4.300   Min.   :2.300   Min.   :1.000   Min.   :0.100  
 1st Qu.:4.800   1st Qu.:3.125   1st Qu.:1.400   1st Qu.:0.200  
 Median :5.000   Median :3.400   Median :1.500   Median :0.200  
 Mean   :5.006   Mean   :3.418   Mean   :1.464   Mean   :0.244  
 3rd Qu.:5.200   3rd Qu.:3.675   3rd Qu.:1.575   3rd Qu.:0.300  
 Max.   :5.800   Max.   :4.400   Max.   :1.900   Max.   :0.600  
              Name   
 Iris-setosa    :50  
 Iris-versicolor: 0  
 Iris-virginica : 0  
                     
                     
                     
'Iris versicolor'
  SepalLength      SepalWidth     PetalLength     PetalWidth   
 Min.   :4.900   Min.   :2.000   Min.   :3.00   Min.   :1.000  
 1st Qu.:5.600   1st Qu.:2.525   1st Qu.:4.00   1st Qu.:1.200  
 Median :5.900   Median :2.800   Median :4.35   Median :1.300  
 Mean   :5.936   Mean   :2.770   Mean   :4.26   Mean   :1.326  
 3rd Qu.:6.300   3rd Qu.:3.000   3rd Qu.:4.60   3rd Qu.:1.500  
 Max.   :7.000   Max.   :3.400   Max.   :5.10   Max.   :1.800  
              Name   
 Iris-setosa    : 0  
 Iris-versicolor:50  
 Iris-virginica : 0  
                     
                     
                     
'Iris virginica'
  SepalLength      SepalWidth     PetalLength      PetalWidth   
 Min.   :4.900   Min.   :2.200   Min.   :4.500   Min.   :1.400  
 1st Qu.:6.225   1st Qu.:2.800   1st Qu.:5.100   1st Qu.:1.800  
 Median :6.500   Median :3.000   Median :5.550   Median :2.000  
 Mean   :6.588   Mean   :2.974   Mean   :5.552   Mean   :2.026  
 3rd Qu.:6.900   3rd Qu.:3.175   3rd Qu.:5.875   3rd Qu.:2.300  
 Max.   :7.900   Max.   :3.800   Max.   :6.900   Max.   :2.500  
              Name   
 Iris-setosa    : 0  
 Iris-versicolor: 0  
 Iris-virginica :50  
                     
                     
                     

In [4]:
hist(setosa$SepalLength,
     xlab="Sepal length of Iris Setosa", main="Setosa's sepal length")



In [5]:
plot(setosa$SepalLength, setosa$SepalWidth, col='red', xlim=range(c(4,8)), ylim=range(c(2,4.5)),
    xlab="Sepal Length", ylab="Sepal Width")
par(new=TRUE)
plot(virginica$SepalLength, virginica$SepalWidth, col='blue', xlim=range(c(4,8)), ylim=range(c(2,4.5)),
     axes=FALSE, xlab='', ylab='')
par(new=TRUE)
plot(versicolor$SepalLength, versicolor$SepalWidth, col='green', xlim=range(c(4,8)), ylim=range(c(2,4.5)),
     axes=FALSE, xlab='', ylab='')



In [6]:
library(ggvis)
options(jupyter.plot_mimetypes = 'image/png')
iris %>% ggvis(~SepalLength, ~SepalWidth, fill = ~Name) %>% layer_points()