[关闭]
@Macux 2015-12-01T06:50:18.000000Z 字数 3750 阅读 1052

R语言_ggplot2_Lv1_Scale

R语言_学习笔记


  1. > p4 <- ggplot(msleep,aes(sleep_total,sleep_cycle))
  2. > pp <- p4 + geom_point(aes(colour=vore))
  3. > pp

此处输入图片的描述

使用另一种不同的颜色标度来修改默认的配色方案。

  1. > p4 + geom_point(aes(colour=vore)) + scale_colour_brewer(palette="Set1")

此处输入图片的描述
如果映射的是连续型变量,则用scale_colour_gradient()来修改。


基本思想:用breaks=vector1来找到断点,用labels=vector2来对断点重命名。如果没有labels语句,就自动在断点处显示vector1的名字。

(1)、在图例中的玩法:

  1. > pp + scale_colour_hue("What does\nit eat?",
  2. breaks = c("herbi", "carni", "omni"),
  3. #用参数breaks()设置图例如何分段。此处做这样的设置是为了去除NA这个分段部分。
  4. labels = c("plants", "meat", "both"))
  5. #在断点处应显示出的标签。蓝色的NA值,在图例中木有了。

此处输入图片的描述

(2)、在条形图中的玩法:

  1. > pi <- ggplot(mtcars,aes(carb)) + geom_histogram(aes(fill=factor(cyl)),binwidth=0.57) + scale_fill_brewer(palette="Set2")
  2. > pi

此处输入图片的描述

  1. > pi + scale_x_discrete(breaks=c(1,2,3,4,6,8),labels=c(1,2,3,4,6,8))

此处输入图片的描述

  1. > p <- ggplot(mtcars,aes(cyl,wt)) + geom_point()
  2. > p + scale_x_continuous(breaks = c(5.5, 6.5))

此处输入图片的描述

  1. > p + scale_x_continuous(limits = c(5.5, 6.5))

此处输入图片的描述

  1. > p1 <- ggplot(mtcars,aes(wt,cyl)) + geom_point(aes(colour=cyl))
  2. > p1

此处输入图片的描述

  1. > p1 + scale_colour_gradient(breaks = c(5.5, 6.5),label=c("Fan","Ryan"))

此处输入图片的描述

  1. > p1 + scale_colour_gradient(limits = c(5.5, 6.5))

此处输入图片的描述
只有cyl的值处在[5.5,6.5]之间的点才有配色,其余的点均已默认的黑色来对待。


  1. > p11 <- ggplot(mtcars,aes(x=wt,y=factor(cyl)))
  2. > p12 <- p11 + geom_point(aes(color=factor(cyl)))
  3. > p12 + scale_x_continuous(expand=c(0,0)) + scale_y_discrete(expand=c(0,0)) + scale_color_brewer(palette="Set1")

此处输入图片的描述


  1. > library(scales)
  2. > ggplot(diamonds,aes(carat,price)) + geom_point(colour=alpha("steelblue",0.5)) + scale_x_log10() + scale_y_log10()

此处输入图片的描述


(1)、一般玩法:

  1. > kl <- ggplot(msleep,aes(sleep_total,sleep_cycle)) + geom_point(aes(colour=awake))
  2. > kl

此处输入图片的描述

  1. > kl + scale_color_gradient2(low=muted("red"),high=muted("black"))

此处输入图片的描述

(2)、高端玩法:

生肉:

  1. > fd <- with(faithful, MASS::kde2d(eruptions, waiting, h = c(1, 10), n = 50))
  2. > df <- with(fd, cbind(expand.grid(x, y), as.vector(z)))
  3. > names(df) <- c("eruptions", "waiting", "density")
  4. > erupt <- ggplot(df, aes(waiting, eruptions, fill = density)) + geom_tile() + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
  5. > erupt + scale_fill_gradient(limits = c(0, 0.04))

此处输入图片的描述

调整后的:

  1. > erupt + scale_fill_gradient(limits = c(0, 0.04), low="white", high="steelblue")

此处输入图片的描述


(1) 、调用系统自带的调色板 (自动上色)
a、点图常用的调色板
生肉:

  1. > point <- ggplot(msleep,aes(brainwt,bodywt)) + scale_x_log10() + scale_y_log10() + geom_point(aes(color=vore))
  2. > point

此处输入图片的描述

方案1:

  1. > point + scale_colour_brewer(palette = "Set1")

此处输入图片的描述

方案2:

  1. > point + scale_colour_brewer(palette = "Dark1")

此处输入图片的描述

方案3:

  1. > point + scale_colour_brewer(palette = "Pastel1")

此处输入图片的描述

b、面积图常用的调色板:

生肉:

  1. > area <- ggplot(msleep,aes(brainwt)) + scale_x_log10() +geom_histogram(aes(fill=vore),binwidth=1)
  2. > area

此处输入图片的描述

方案1:

  1. > area + scale_fill_brewer(palette = "Pastel1")

此处输入图片的描述

方案2:

  1. > area + scale_fill_brewer(palette = "Set2")

此处输入图片的描述

方案3:

  1. > area + scale_fill_brewer(palette = "Pastel2")

此处输入图片的描述

方案4:

  1. > area + scale_fill_brewer(palette = "Accent")

此处输入图片的描述

(2)、玩转颜色DIY和散点样式DIY (手动上色)

  1. > pl <- ggplot(msleep,aes(brainwt, bodywt))+ scale_x_log10() + scale_y_log10()

a、DIY每一类的颜色

  1. > pl + geom_point(aes(colour = vore)) + scale_colour_manual(values = c("red", "orange", "yellow", "green", "blue"))

此处输入图片的描述
你无法知道哪个颜色是如何映射到哪一类,只能够"听天由命"

  1. #设置哪一类对应哪一种颜色
  2. > colours <- c(carni = "red","NA" = "orange",insecti = "yellow", herbi = "green", omni = "blue")
  3. #这样,结果就会出现我们想要的。
  4. > pl + geom_point(aes(colour = vore)) + scale_colour_manual("Redondo",values = colours,labels=c("Ryan","Fan","Chloe","Zhang" ))

此处输入图片的描述

顺便把label也DIY成自己想要的!
这里的vore是一个vector,但在上色的时候,是手动上色,颜色由另一个向量colours来确定。
本质还是和pt的上图思想一样。

b、DIY每一类散点的样式

  1. > shapess <- c(carni=2,insecti=8,herbi=24,omni=15)
  2. > pl + geom_point(aes(colour = vore,shape=vore)) + scale_colour_manual("Redondo",values = colours,labels=c("Ryan","Fan","Chloe","Zhang" )) + scale_shape_manual("Redondo",values = shapess,labels=c("Ryan","Fan","Chloe","Zhang" ))

此处输入图片的描述


  1. > huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron))
  2. > pt <- ggplot(huron, aes(year)) + geom_line(aes(y = level - 5, colour = "below")) + geom_line(aes(y = level + 5, colour = "above"))+ scale_colour_manual("Direction",values=c("below" = "red","above"="lightskyblue "),labels=c("上面那条线","下面那条线"))
  3. > pt

此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注