R语言零碎整理

文章目录

  • ggplot2画图
    • 1.ggplot2画柱形图时,横坐标顺序的调整
  • 2.ggplot2调整调色板颜色
    • (1) 手动修改
    • (2)渐变色
    • (3)RColorBrewer包
  • 3.根据经纬度计算距离:
  • 4.新建空矩阵或者向量
  • 5.在频率直方图图上添加曲线
  • 6 线型-点型调整^【3】^
  • 7组合图的图例如何画^【4】^
  • 8 ggplot2中,Q-Q图的画法
  • 9 ggsci的颜色查看及显示
  • 10 数据操作
  • 11将字符串转换为变量
  • 参考文献

ggplot2画图

1.ggplot2画柱形图时,横坐标顺序的调整

默认情况下是按照英文字母递增顺序排序,即b,d,g,k,r,w。需要对date.frame调整,指定不同的顺序,可以将x轴列指定为具有指定顺序的因子,也可以根据场景使用reorder()函数。修改的命令参考如下。

ma$classify <- factor(ma$classify, levels=c( "b", "r","g","w","d","k"), ordered=TRUE)

折线图

 p+ scale_x_discrete(limits=c('Jan','Feb','Mar','Apr',	'May',	'Jun','Jul'	,'Aug',	'Sep','Oct'	,'Nov','Dec'))

2.ggplot2调整调色板颜色

(1) 手动修改

scale_fill_manual和scale_color_manual函数用于手动修改颜色

p + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))#用于面的填充色
p + scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))#用于点、线

颜色代码大全一览
R语言零碎整理_第1张图片

(2)渐变色

scale_color_gradient, scale_fill_gradient:两种颜色的连续梯度
scale_color_gradient2, scale_fill_gradient2:不同梯度
scale_color_gradientn, scale_fill_gradientn:多种颜色梯度
scale_fill_grey()可以看做是黑、白的渐变

①默认的深蓝到浅蓝渐变

df <- data.frame(
  x = runif(100),
  y = runif(100),
  z1 = rnorm(100),
  z2 = abs(rnorm(100)))

# Default colour scale colours from light blue to dark blue
ggplot(df, aes(x, y)) +geom_point(aes(colour = z2))

R语言零碎整理_第2张图片
②两颜色渐变scale_colour_gradient2()

# For diverging colour scales use gradient2
ggplot(df, aes(x, y)) +geom_point(aes(colour = z1)) +scale_colour_gradient2()

R语言零碎整理_第3张图片
③多颜色渐变scale_colour_gradientn
注意多颜色渐变的白色带不在中间

# Use your own colour scale with gradientn
ggplot(df, aes(x, y)) +geom_point(aes(colour = z1))
+scale_colour_gradientn(colours = terrain.colors(10))

R语言零碎整理_第4张图片

(3)RColorBrewer包

调色板工具除了手动设置外,还可以借助RColorBrewer包提供的调色板。
R语言零碎整理_第5张图片

p + scale_fill_brewer(palette="Set2")
p + scale_color_brewer(palette="Set2")

3.根据经纬度计算距离:

distm() in package geosphere
geoDist() in package SoDA

4.新建空矩阵或者向量

预定义设置矩阵或者向量【2】.

x=vector()  #创建的为空向量(可以为数值或者字符串)
x<-numeirc(0)     #长度可变的存储数字的向量
x=character()  #创建出来的为字符串向量
x<-NULL; x[1]<-2;…… #每次给x赋值长度自动延长,生成的也为向量

vector(mode="numeric",length=0)定义一个空向量,然后添加元素值

x=matrix(nrow = 2,ncol=3)   #创建空矩阵

5.在频率直方图图上添加曲线

p<-ggplot(d, aes(x=w)) + geom_histogram(aes(y=..density..), binwidth=1)+ 
  geom_line(data =mm,aes(x=mm$xx,y=mm$value,colour=class,group = class), size=1)

6 线型-点型调整【3】

scale_linetype_discrete,scale_linetype_discrete scale将12个不同的值映射到12个预定义的linetype。
R语言零碎整理_第6张图片
R语言零碎整理_第7张图片

d=data.frame(a=c("a","b","c","d","e","f","g","h", "i", "j", "k", "l"))
ggplot() +
scale_x_continuous(limits=c(0,1), breaks=NA, name="") +
scale_y_discrete(name="") +
scale_linetype_discrete(legend=F) +
geom_segment(data=d, mapping=aes(x=0, xend=1, y=a, yend=a, linetype=a))

scale_linetype_identity,scale_linetype_identity scale可以用来传递任何合法的linetype值(它的映射是identity函数,因此它不会改变任何东西)。
R语言零碎整理_第8张图片

d=data.frame(a=c("a","b","c","d","e","f","g","h", "i", "j", "k", "l"))
ggplot() +
scale_x_continuous(limits=c(0,1), breaks=NA, name="") +
scale_y_discrete(name="") +
scale_linetype_discrete(legend=F) +
geom_segment(data=d, mapping=aes(x=0, xend=1, y=a, yend=a, linetype=a))

7组合图的图例如何画【4】

下面为一般设置,这样会产生两个图例。

g+scale_color_manual(values=c("Blue1","Red1","Green","Black"))+
scale_linetype_manual(values=c(1,2,1,2) )

我的设置是,增加一个图例名称,比如图例标题为group,则会对统一的标题操作。

g+ scale_color_manual(name = "group",values=c("Blue1","Red1","Green","Black"))+
 scale_linetype_manual(name = "group",values=c(1,2,1,2) )+
g2+ theme(legend.title=element_blank(),legend.position = c(0.9, 0.9))# 删除标题名称,确定位置

图中图的一些建议【5】

8 ggplot2中,Q-Q图的画法

两列未知分布数据的Q-Q图可用下列代码。

df <- as.data.frame(qqplot(x, y, plot.it=FALSE))
 p<-ggplot(df) + geom_point(aes(x=x, y=y))
 p

9 ggsci的颜色查看及显示

以lancet期刊为例,

library("scales")
show_col(pal_lancet("lanonc")(9))
show_col(pal_lancet("lanonc", alpha = 0.6)(9))#显示出图形
pal_lancet("lanonc")(9)#显示代码

10 数据操作

例子
命令1 aggregate(.~ID,data=df,mean)
命令2 library(dplyr)
df %>% group_by(ID) %>% summarise_each(funs(mean))

11将字符串转换为变量

w=paste("a",1:5,sep = "")  #生成a1,a2,..,a5等
data=get(w)              #get()将字符串转换为变量

参考文献

【1】http://www.sohu.com/a/337650938_718302
【2】http://www.bubuko.com/infodetail-1963272.html
【3】http://sape.inf.usi.ch/quick-reference/ggplot2/linetype
【4】https://www.cnblogs.com/nkwy2012/p/7614168.html
【5】ggplot2:在一幅图中插入另外一幅图

你可能感兴趣的:(R,ggplot2,调色板,学习)