小编And*_*ein的帖子

ggplot2 - annotate - 更改文本注释的背景颜色

我想更改注释文本的背景颜色,使其为绿色并覆盖其背后的任何内容(如下例中的水平线).我怎么做?

ggplot() + 
  geom_hline(yintercept=0) + 
  annotate("text",x=0,y=0,label="Here is a line")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r annotate background-color ggplot2

10
推荐指数
2
解决办法
6794
查看次数

在plyr或dplyr中调试 - 查看哪个组

当我使用plyr和dplyr来分析按id分组的大数据集时,我有时会在函数中出错.我可以使用browser()或debugger()来探索发生了什么,但有一个问题是我不知道问题是第一个id还是第100个.我可以使用调试器让我停止错误,但有一个简单的方法来查看id导致问题除了只包括id作为函数输入以进行调试的唯一目的?我用下面的例子说明.

meanerr = function(y) {
  m = mean(y)
  stopifnot(!is.na(m))
  return(m)
}

d = data.frame(id=c(1,1,1,1,2,2),y=c(1,2,3,4,5,NA))
dsumm = ddply(d,"id",summarise,mean=meanerr(y))
Run Code Online (Sandbox Code Playgroud)

当然这会导致下面的错误,当我深入到转储时,我只需要知道在哪里看(见下文)

> options(error=dump.frames)
> source('~/svn/pgm/test_debug_ddply.R')
Error: !is.na(m) is not TRUE
> debugger()
Message:  Error: !is.na(m) is not TRUE
Available environments had calls:
1: source("~/svn/pgm/test_debug_ddply.R")
2: withVisible(eval(ei, envir))
3: eval(ei, envir)
4: eval(expr, envir, enclos)
5: test_debug_ddply.R#9: ddply(d, "id", summarise, mean = meanerr(y))
6: ldply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .
7: llply(.data = .data, …
Run Code Online (Sandbox Code Playgroud)

debugging r plyr dplyr

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

ggplot2:添加一个新功能并强制它返回

我想使用ggplot创建一个复杂的情节,然后在最后,我想在其中添加"草稿"这个词.但我希望这个词在后面,而不是在前面.我知道我可以在后面只添加它,但这不是我想要的.原因是,我想编写一个自定义保存功能,将用于创建图形的源文件的名称添加到x轴,并将该图标记为"草稿",除非设置了某个标志.我的自定义功能可以做到这一点,但"草稿"这个词总是在前面.

有没有办法调整下面的注释行,保持顺序相同,这将把草稿放在正弦波后面?

x = seq(0,100,.1)
d = data.frame(x=x,y=sin(x))

p = ggplot(data=d,aes(x=x,y=y)) + geom_line(size=3,color="grey50")
p = p + annotate("text",x=50,y=0,label="Draft",color="blue",size=40)
print(p)
ggsave(filename = "test_background.pdf")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

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

ggplot:设置具有多个属性的图例标题

我想更改使用下面的代码生成的图例的标题。请注意,我知道我可以将 data.frame 和美学直接放在 ggplot() 函数调用中,但在本示例中我没有这样做,因为在我的应用程序中,我需要具有不同数据集和美学的多个层。

d = data.frame(t=rep(1:10,2),
               value = rep(1:2,each=10),
               dose_mpk = factor(rep(1:2,each=10)))

g = ggplot() 
a = aes(x=t,y=value,group=dose_mpk,color=dose_mpk,shape=dose_mpk)
g = g + geom_point(data=d,a)
g = g + geom_line(data=d,a)
print(g)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不明白更改图例标题的正确方法。我尝试了下面的代码,它给出了下面的图,这不是我想要的 - 我只是想更改标题,而不是创建双图例。由于我原来的图例既涉及形状又涉及颜色,因此我不确定如何更改此“组合”标题。我应该怎么办?

g + guides(color = guide_legend("dose (mg/kg)"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r legend ggplot2

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

标签 统计

r ×4

ggplot2 ×3

annotate ×1

background-color ×1

debugging ×1

dplyr ×1

legend ×1

plyr ×1