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))