@Macux
2015-12-01T06:50:18.000000Z
字数 3750
阅读 1052
R语言_学习笔记
> p4 <- ggplot(msleep,aes(sleep_total,sleep_cycle))
> pp <- p4 + geom_point(aes(colour=vore))
> pp
使用另一种不同的颜色标度来修改默认的配色方案。
> p4 + geom_point(aes(colour=vore)) + scale_colour_brewer(palette="Set1")
如果映射的是连续型变量,则用scale_colour_gradient()来修改。
基本思想:用breaks=vector1来找到断点,用labels=vector2来对断点重命名。如果没有labels语句,就自动在断点处显示vector1的名字。
(1)、在图例中的玩法:
> pp + scale_colour_hue("What does\nit eat?",
breaks = c("herbi", "carni", "omni"),
#用参数breaks()设置图例如何分段。此处做这样的设置是为了去除NA这个分段部分。
labels = c("plants", "meat", "both"))
#在断点处应显示出的标签。蓝色的NA值,在图例中木有了。
(2)、在条形图中的玩法:
> pi <- ggplot(mtcars,aes(carb)) + geom_histogram(aes(fill=factor(cyl)),binwidth=0.57) + scale_fill_brewer(palette="Set2")
> pi
> pi + scale_x_discrete(breaks=c(1,2,3,4,6,8),labels=c(1,2,3,4,6,8))
> p <- ggplot(mtcars,aes(cyl,wt)) + geom_point()
> p + scale_x_continuous(breaks = c(5.5, 6.5))
> p + scale_x_continuous(limits = c(5.5, 6.5))
> p1 <- ggplot(mtcars,aes(wt,cyl)) + geom_point(aes(colour=cyl))
> p1
> p1 + scale_colour_gradient(breaks = c(5.5, 6.5),label=c("Fan","Ryan"))
> p1 + scale_colour_gradient(limits = c(5.5, 6.5))
只有cyl的值处在[5.5,6.5]之间的点才有配色,其余的点均已默认的黑色来对待。
> p11 <- ggplot(mtcars,aes(x=wt,y=factor(cyl)))
> p12 <- p11 + geom_point(aes(color=factor(cyl)))
> p12 + scale_x_continuous(expand=c(0,0)) + scale_y_discrete(expand=c(0,0)) + scale_color_brewer(palette="Set1")
> library(scales)
> ggplot(diamonds,aes(carat,price)) + geom_point(colour=alpha("steelblue",0.5)) + scale_x_log10() + scale_y_log10()
(1)、一般玩法:
> kl <- ggplot(msleep,aes(sleep_total,sleep_cycle)) + geom_point(aes(colour=awake))
> kl
> kl + scale_color_gradient2(low=muted("red"),high=muted("black"))
(2)、高端玩法:
生肉:
> fd <- with(faithful, MASS::kde2d(eruptions, waiting, h = c(1, 10), n = 50))
> df <- with(fd, cbind(expand.grid(x, y), as.vector(z)))
> names(df) <- c("eruptions", "waiting", "density")
> erupt <- ggplot(df, aes(waiting, eruptions, fill = density)) + geom_tile() + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
> erupt + scale_fill_gradient(limits = c(0, 0.04))
调整后的:
> erupt + scale_fill_gradient(limits = c(0, 0.04), low="white", high="steelblue")
(1) 、调用系统自带的调色板 (自动上色)
a、点图常用的调色板
生肉:
> point <- ggplot(msleep,aes(brainwt,bodywt)) + scale_x_log10() + scale_y_log10() + geom_point(aes(color=vore))
> point
方案1:
> point + scale_colour_brewer(palette = "Set1")
方案2:
> point + scale_colour_brewer(palette = "Dark1")
方案3:
> point + scale_colour_brewer(palette = "Pastel1")
b、面积图常用的调色板:
生肉:
> area <- ggplot(msleep,aes(brainwt)) + scale_x_log10() +geom_histogram(aes(fill=vore),binwidth=1)
> area
方案1:
> area + scale_fill_brewer(palette = "Pastel1")
方案2:
> area + scale_fill_brewer(palette = "Set2")
方案3:
> area + scale_fill_brewer(palette = "Pastel2")
方案4:
> area + scale_fill_brewer(palette = "Accent")
(2)、玩转颜色DIY和散点样式DIY (手动上色)
> pl <- ggplot(msleep,aes(brainwt, bodywt))+ scale_x_log10() + scale_y_log10()
a、DIY每一类的颜色
> pl + geom_point(aes(colour = vore)) + scale_colour_manual(values = c("red", "orange", "yellow", "green", "blue"))
你无法知道哪个颜色是如何映射到哪一类,只能够"听天由命"
#设置哪一类对应哪一种颜色
> colours <- c(carni = "red","NA" = "orange",insecti = "yellow", herbi = "green", omni = "blue")
#这样,结果就会出现我们想要的。
> 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每一类散点的样式
> shapess <- c(carni=2,insecti=8,herbi=24,omni=15)
> 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" ))
> huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron))
> 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("上面那条线","下面那条线"))
> pt