美文网首页
ggplot2学习(2)

ggplot2学习(2)

作者: BioLearner | 来源:发表于2019-11-18 08:59 被阅读0次

1、Review

>library(ggplot2)
>attach(mpg)
>head(mpg)
# A tibble: 6 x 11
  manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class  
  <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr>  
1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compact
2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compact
3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compact
4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compact
5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compact
6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compact
>?mpg
qplot(displ, hwy, data = mpg, colour = cyl)    #cyl为整型
qplot(displ, hwy, data = mpg, colour = class)    #class为字符型
qplot(displ, hwy, data = mpg, colour = factor(cyl))    #使用fator()转换为因子
#下述两条命令生成的图一致
qplot(displ, hwy, data = mpg, 
      colour = cyl,
      geom = c("smooth","point"),
      method = "lm") 
qplot(displ, hwy, data = mpg, colour = cyl)  + geom_smooth(method = "lm") +geom_point()
#下述两条命令生成的图一致
qplot(displ, hwy, data = mpg, 
      colour = factor(cyl),
      geom = c("smooth","point"),
      method = "lm")       #method = "lm"表示smooth线采用线性模型,图中阴影部分表示标准差
qplot(displ, hwy, data = mpg, colour = factor(cyl),) + geom_smooth(method = "lm") +geom_point()
qplot(displ, hwy, data = mpg, facets = .~year) + geom_smooth() +geom_point()
#facets = .~year表示按year来分面

2、Save Rdata or plot

> p <- qplot(displ, hwy, data = mpg, colour = factor(cyl)) 
> summary(p)
data: manufacturer, model, displ, year, cyl, trans, drv, cty, hwy, fl, class [234x11]
mapping:  x = ~displ, y = ~hwy, colour = ~factor(cyl)
faceting: <ggproto object: Class FacetNull, Facet, gg>
    compute_layout: function
    draw_back: function
    draw_front: function
    draw_labels: function
    draw_panels: function
    finish_data: function
    init_scales: function
    map_data: function
    params: list
    setup_data: function
    setup_params: function
    shrink: TRUE
    train_scales: function
    vars: function
    super:  <ggproto object: Class FacetNull, Facet, gg>
-----------------------------------
geom_point: na.rm = FALSE
stat_identity: na.rm = FALSE
position_identity 
>save(p, file = "plot.rdata")   #保存r中的数据,其中可以写入路径,不写则保存在当前的工作目录下
>load(plot.rdata)    #向R的数据空间中导入数据
>ggsave("plot.png", width = 5, height = 5)    #保存当前作图空间中的图片; .png后缀名代表不同格式的图片

3、Build a plot layer by layer

#layer 1
p <- ggplot(diamonds, aes(carat, price, colour = cut))
p
#layer 2
p <- p + geom_point()
p
#上述layer1+2等同于:
p <- ggplot(diamonds, aes(carat, price, colour = cut)) + geom_point()
p
#layer(geom, geom_params, stat, stat_params, data, mapping, position)
p <- ggplot(diamonds, aes(x = cut))
p <- p + geom_bar(fill = "blue") 
p
#basic form
#geom_XXX(mapping, data, ... , geom, position)
#stat_XXX(mapping, data, ... , stat, position)
ggplot(msleep, aes(sleep_rem/sleep_total, awake)) + geom_point()
#等同于:
qplot(sleep_rem/sleep_total, awake, data = msleep)   #qplot()中默认geom为“point”
#以下三种命令结果一致
qplot(sleep_rem/sleep_total, awake, data = msleep, geom = c("smooth","point"))
ggplot(msleep, aes(sleep_rem/sleep_total, awake)) + geom_point() + geom_smooth()
#等价于
plot <- ggplot(msleep, aes(sleep_rem/sleep_total, awake))
plot <- plot + geom_point() + geom_smooth()
plot
ggplot(msleep, aes(sleep_rem, sleep_total)) + geom_point(shape = 1) + bestfit
ggplot(mpg, aes(displ, hwy)) + geom_point(shape = 1) + bestfit + facet_grid(.~year)   # 在x轴根据year来分面
ggplot(mpg, aes(displ, hwy)) + geom_point(shape = 1) + bestfit + facet_grid(year~.)   # 在y轴根据year来分面
ggplot(mpg, aes(displ, hwy)) + geom_point(shape = 1) + bestfit + facet_grid(year~cyl)  
# 在x轴根据year来分面,在y轴根据cyl来分面,注意分面依据x、y轴不可相同

4、transform the data in the plot using %+%

p <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point(size = 4)
p
mtcars <- transform(mtcars, mpg = mpg ^ 2)    #mpg变为原来的平方
p %+% mtcars

欢迎关注微信公众号:BioLearner

相关文章

网友评论

      本文标题:ggplot2学习(2)

      本文链接:https://www.haomeiwen.com/subject/duymictx.html