Scatter Plot
load("C:/Users/nc20/Downloads/cdc.Rdata")
plot(cdc$weight, cdc$wtdesire)

# y = ax + b
# wtdesire = a* weight + b
plot(wtdesire ~ weight, data = cdc)
?lm
## starting httpd help server ... done
fit <- lm(wtdesire ~ weight, data = cdc)
# wtdesire = 0.639 * weight + 46.664
fit
##
## Call:
## lm(formula = wtdesire ~ weight, data = cdc)
##
## Coefficients:
## (Intercept) weight
## 46.664 0.639
plot(wtdesire ~ weight, data = cdc)
abline(v = 450, col='blue')
abline(h = 400, col='orange')
abline(fit , col='red')

data(iris)
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
x <- iris[,1]
y <- iris[,3]
s <- iris[,5]
s
## [1] setosa setosa setosa setosa setosa setosa
## [7] setosa setosa setosa setosa setosa setosa
## [13] setosa setosa setosa setosa setosa setosa
## [19] setosa setosa setosa setosa setosa setosa
## [25] setosa setosa setosa setosa setosa setosa
## [31] setosa setosa setosa setosa setosa setosa
## [37] setosa setosa setosa setosa setosa setosa
## [43] setosa setosa setosa setosa setosa setosa
## [49] setosa setosa versicolor versicolor versicolor versicolor
## [55] versicolor versicolor versicolor versicolor versicolor versicolor
## [61] versicolor versicolor versicolor versicolor versicolor versicolor
## [67] versicolor versicolor versicolor versicolor versicolor versicolor
## [73] versicolor versicolor versicolor versicolor versicolor versicolor
## [79] versicolor versicolor versicolor versicolor versicolor versicolor
## [85] versicolor versicolor versicolor versicolor versicolor versicolor
## [91] versicolor versicolor versicolor versicolor versicolor versicolor
## [97] versicolor versicolor versicolor versicolor virginica virginica
## [103] virginica virginica virginica virginica virginica virginica
## [109] virginica virginica virginica virginica virginica virginica
## [115] virginica virginica virginica virginica virginica virginica
## [121] virginica virginica virginica virginica virginica virginica
## [127] virginica virginica virginica virginica virginica virginica
## [133] virginica virginica virginica virginica virginica virginica
## [139] virginica virginica virginica virginica virginica virginica
## [145] virginica virginica virginica virginica virginica virginica
## Levels: setosa versicolor virginica
xlab <- names(iris)[1]
ylab <- names(iris)[3]
#plot(x,y, xlab = xlab, ylab = ylab, col='red')
plot(x,y, xlab = xlab, ylab = ylab, col=s)

color_lab <- ifelse(iris[,3] > median(iris[,3]), 'red', 'blue')
cex_lab <- ifelse(iris[,3] > median(iris[,3]), 3, 1)
#cex_lab
plot(x,y, xlab = xlab, ylab = ylab, col=color_lab, cex = cex_lab, pch=19)

x <- iris[,1]
y <- iris[,3]
xlab <- names(iris)[1]
ylab <- names(iris)[3]
setosa <- iris$Species == 'setosa'
versicolor <- iris$Species == 'versicolor'
setosa <- which(iris$Species == 'setosa')
versicolor <- which(iris$Species == 'versicolor')
plot(x,y, xlab=xlab, ylab=ylab, type= 'n')
points(iris[setosa,1], iris[setosa,3], col= 'green')
points(iris[versicolor,1], iris[versicolor,3], col= 'red')

data('anscombe')
fit <- lm(y3 ~ x1, data = anscombe)
plot(y3 ~ x1, data = anscombe)
abline(fit, col='red')

fit <- lm(y3[x1!=13] ~ x1[x1!=13], data = anscombe)
plot(y3 ~ x1, data = anscombe)
abline(fit, col='red')

library(MASS)
fit <- rlm(y3 ~ x1, data = anscombe)
plot(y3 ~ x1, data = anscombe)
abline(fit, col='red')

head(cdc)
## genhlth exerany hlthplan smoke100 height weight wtdesire age gender
## 1 good 0 1 0 70 175 175 77 m
## 2 good 0 1 1 64 125 115 33 f
## 3 good 1 1 1 60 105 105 49 f
## 4 good 1 1 0 66 132 124 42 f
## 5 very good 0 1 0 61 150 130 55 f
## 6 very good 1 1 0 64 114 114 55 f
plot(wtdesire ~ weight, data = cdc)
fit <- lm(wtdesire ~ weight, data = cdc)
abline(fit, col='red')

plot(wtdesire ~ weight, data = cdc, col= gender)

male <- cdc$gender == 'm'
female <- cdc$gender == 'f'
fit_male <- lm(wtdesire ~ weight, data = cdc[male,])
fit_female <- lm(wtdesire ~ weight, data = cdc[female,])
plot(wtdesire ~ weight, data = cdc, type='n')
points(wtdesire ~ weight, data = cdc[male,], col='blue')
abline(fit_male, col='orange', lwd=3)
points(wtdesire ~ weight, data = cdc[female,], col='red')
abline(fit_female, col='purple', lwd=3)

Mosaic Plot
table(cdc$gender)
##
## m f
## 9569 10431
table(cdc$smoke100)
##
## 0 1
## 10559 9441
tb <- table(cdc$gender, cdc$smoke100)
mosaicplot(tb, col=rainbow(2), main= 'Smokers by Gender')

Boxplot
hist(cdc$weight)

hist(cdc$height)

boxplot(cdc$weight)

grades <- c(0,45,50,60,70,65,72,80,100)
sort(grades)
## [1] 0 45 50 60 65 70 72 80 100
median(grades)
## [1] 65
quantile(grades, 0.75)
## 75%
## 72
quantile(grades, 0.25)
## 25%
## 50
# 72 - 50
IQR(grades)
## [1] 22
boxplot(grades)

min(grades[grades > (median(grades) - 1.5 * IQR(grades))])
## [1] 45
max(grades[grades > (median(grades) + 1.5 * IQR(grades))])
## [1] 100
boxplot(cdc$height ~ cdc$gender)

Legend
Taipei <- c(92.5,132.6,168.8,159.1,218.7)
Tainan <- c(21.2, 30.6, 37.3, 84.6, 184.3)
plot(Taipei, type= 'o', ylim=c(0,260), xlim=c(1,6), col='blue', xlab='Month', ylab = 'Rainfall', main = 'Taipei Rainfall v.s. Tainan Rainfall')
lines(Tainan, type= 'o',col='red',pch=22, lty=2)
text(5.5, 230, 'Taipei', col='blue')
text(5.5, 200, 'Tainan', col='red')
legend(x=1, y=200, c('Taipei', 'Tainan'), lwd=2, col=c('blue', 'red'), lty=c(1,2))
legend('bottomright', c('Taipei', 'Tainan'), lwd=2, col=c('blue', 'red'), lty=c(1,2))

housePrice <- read.csv('https://raw.githubusercontent.com/ywchiu/rtibame/master/data/house-prices.csv', header = TRUE)
bedroomTable <- table(housePrice$Bedrooms)
tb <- sort(bedroomTable, decreasing = TRUE)
pie(tb, labels = c('3 Units', '2 Units', '4 Units', '5 Units'), init.angle = 90, clockwise = TRUE, col=rainbow(4),main = 'Bedroom Pie Chart')
legend('bottomright', c('3 Units', '2 Units', '4 Units', '5 Units'), fill=rainbow(4))

Par
showLayout <- function(n){
for(i in 1:n){
plot(1,type="n",xaxt="n",yaxt="n",xlab="",ylab="")
text(1, 1, labels=i, cex=10)
}
}
par(mfrow=c(3,2), mar=c(1,1,1,1))
showLayout(6)
par(mfcol=c(3,2), mar=c(1,1,1,1))
showLayout(6)
par(mfrow=c(3,2), mar=c(3,3,3,3))
showLayout(6)
