R语言零碎整理

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"))#用于点、线

颜色代码大全一览
在这里插入图片描述

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

在这里插入图片描述
②两颜色渐变scale_colour_gradient2()

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

在这里插入图片描述
③多颜色渐变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))

在这里插入图片描述

(3)RColorBrewer包

调色板工具除了手动设置外,还可以借助RColorBrewer包提供的调色板。
yanse

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。
在这里插入图片描述
在这里插入图片描述

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函数,因此它不会改变任何东西)。
在这里插入图片描述

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等
assign(w,1) 
data=get(w)              #get()将字符串转换为变量

12 生成日期序列

dateseries <- seq.Date(from = as.Date("1948/01/01",format = "%Y/%m/%d"), by = "month", length.out = 420)
# 如果想将日删除(只保留年月)
temp <- format(dateseries, format = "%Y/%m")

13 R语言保存环境里的所有变量

主要函数与其功能列于下表

函数名称功能
ls()显示当前环境中的所有变量,只要显示处的数据可以被保存
save.image(file=‘名称.RData’)保存ls()显示的所有数据
dir()查看名称.RData是否被保存到默认路径
load(‘名称.RData’)加载保存的环境变量

14 geom_sf与ggplot2在地图上绘制条形图

【绘图】-【坐标系调整】

15 坐标轴小数点后位数

scaleFUN <- function(x) sprintf("%.2f", x)  #如保留两位
p + scale_y_continuous(labels=scaleFUN)

16 报错Do you need to adjust the group aesthetic?

#`geom_line()`: Each group consists of only one observation.
#ℹ Do you need to adjust the group aesthetic?
ggplot(data, aes(x=Month, y=value, shape=Year,color=Year,group=Year))+ geom_point() + geom_line()# 加入group=Year

17 ggridges扩展包

参考文献

【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:在一幅图中插入另外一幅图
【6】R语言生成日期序列
【7】R语言保存环境里的所有变量

  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值