library(ggplot2)
library(splines)
set.seed(1410)
dsmall<-diamonds[sample(nrow(diamonds),100),]
qplot(carat,price,data=diamonds)

qplot(log(carat),log(price),data=diamonds)

qplot(carat,price,data=diamonds,colour=color)

qplot(carat,price,data=diamonds,shape=cut)

qplot(carat,price,data=diamonds,alpha=I(1/100))

qplot(carat,price,data=diamonds,geom = c("point","smooth"))
## `geom_smooth()` using method = 'gam'

qplot(carat,price,data =dsmall,geom = c("point","smooth"),span=0.2)
## Warning: Ignoring unknown parameters: span
## `geom_smooth()` using method = 'loess'

#线性回归
qplot(carat,price,data =dsmall,geom = c("point","smooth"),method="lm")
## Warning: Ignoring unknown parameters: method

qplot(carat,price,data =dsmall,geom = c("point","smooth"),method="lm",formula=y~poly(x,2))
## Warning: Ignoring unknown parameters: method, formula

qplot(carat,price,data =dsmall,geom = c("point","smooth"),method="lm",formula=y~ns(x,20))
## Warning: Ignoring unknown parameters: method, formula

qplot(carat,price,data=diamonds,geom=c("point","smooth"),method="gam",formula=y~s(x,bs="cs"))
## Warning: Ignoring unknown parameters: method, formula

#回归:数据量超过1000时应该用method="gam",formula=y~s(x,bs="cs")
qplot(color,price,data=diamonds,geom="jitter",alpha=I(1/50),colour=color)

#扰动点图geom+alpha+colour
qplot(color,price,data=diamonds,geom="boxplot",colour=color)

# 箱线图
# qplot(color,price,data=diamonds,geom="histogram",fill=color)
# 直方图
# qplot(color,price,data=diamonds,geom="density",fill=color)
qplot(carat,data=diamonds,geom="density",colour=color)

#如果少了colour=color是会报错的。因此在预览数据的时候要想一下画图时一个横轴点是否对应着一个纵轴的点,如果不是的话,应该是需要进行一下分组。
#qplot(color,data=diamonds,geom="histogram",fill=color)
qplot(color,data=diamonds,geom="bar",weight=carat)+scale_y_continuous("carat")

economics
## # A tibble: 574 x 6
## date pce pop psavert uempmed unemploy
## <date> <dbl> <int> <dbl> <dbl> <int>
## 1 1967-07-01 507 198712 12.5 4.50 2944
## 2 1967-08-01 510 198911 12.5 4.70 2945
## 3 1967-09-01 516 199113 11.7 4.60 2958
## 4 1967-10-01 513 199311 12.5 4.90 3143
## 5 1967-11-01 518 199498 12.5 4.70 3066
## 6 1967-12-01 526 199657 12.1 4.80 3018
## 7 1968-01-01 532 199808 11.7 5.10 2878
## 8 1968-02-01 534 199920 12.2 4.50 3001
## 9 1968-03-01 545 200056 11.6 4.10 2877
## 10 1968-04-01 545 200208 12.2 4.60 2709
## # ... with 564 more rows
#路径图
qplot(date,unemploy/pop,data=economics,geom="line")

year<-function(x) as.POSIXlt(x)$year+1900
qplot(unemploy/pop,uempmed,data=economics,geom="path",colour=year(date))

#在调试的时候,发现下面的程序与上面的有着相同的功能,不用定义year函数,直接就可以执行
qplot(unemploy/pop,uempmed,data=economics,geom="path",colour=year(date))
