小编Dan*_* KS的帖子

将直接标签稍微向左移动

我试图将我的直接标签稍微向左移动,不是一组而是所有组。默认情况下 dl.move 一次只移动一组。

library(directlabels)
library(ggplot2)

count <- c(1,5,6,7,8,8)
year <- c(rep(c(2000,2001,2002),2))
group <- c(rep("A",3),rep("B",3))
c <- data.frame(year,count,group)

p <- ggplot(c, aes(x=year, y=count, colour=group)) + geom_line()

direct.label(p, "first.points")
Run Code Online (Sandbox Code Playgroud)

我可以移动一点...

kif <- dl.move("A", hjust=2, vjust=0)
direct.label(p, list("first.points",kif))
Run Code Online (Sandbox Code Playgroud)

但理想情况下,我只想以相同的方式将整个事情移到 a 上。我完全错过了一些愚蠢的语法吗?

charts graphing r ggplot2 direct-labels

3
推荐指数
1
解决办法
976
查看次数

创建一个循环以在 ggplot 中写入注释

我正在创建图表,其中一条白线在条形前面打破了条形(抱歉无法发布图像)。我已经得到了一次执行此操作的代码,但我还不擅长循环。

library(ggplot2)

count <- c(61.8,18.8)
name <- c("A","B")
yes <- data.frame(count,name)

j <-   ggplot(yes, aes(x=name, y=count)) + 
geom_bar(stat="identity", position="dodge") 
Run Code Online (Sandbox Code Playgroud)

为了仅添加一行,我创建了这个函数......

b <- function (yx){
j + annotate("segment", x=-Inf, xend=Inf, y=yx, yend=yx,size=1, colour="white") 
}

b(8)
Run Code Online (Sandbox Code Playgroud)

这就是我陷入困境的地方,我想制作一个可以遍历向量的循环,例如......

yx <- c(8,10,20)
Run Code Online (Sandbox Code Playgroud)

并在 8、10 和 20 处创建一行。一个棘手的问题是,除了终端数据(最后一个)之外的所有数据都需要在末尾有一个“+”。有人试过这个吗?

谢谢

loops r annotate user-defined-functions ggplot2

2
推荐指数
1
解决办法
1432
查看次数

使用函数将变量名称从upper更改为lower

我正在使用一堆SAS数据集,我更喜欢变量名称都是小写的,使用read.sas7bdat,但我这样做,所以我经常想编写一个函数.这个方法工作正常,

df <- data.frame(ALLIGATOR=1:4, BLUEBIRD=rnorm(4))
names(file1) <- tolower(names(file1))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将它放入一个函数时它不会分配.

lower <- function (df) {names(df) <- tolower(names(df))}
lower(file1)
Run Code Online (Sandbox Code Playgroud)

我知道我缺少一些更大的概念,这阻碍了我.它似乎没有做任何事情.

r function character names

1
推荐指数
1
解决办法
3443
查看次数