小编Jos*_*eke的帖子

如何在使用带有scale_y_log10的geom_histogram时抑制零

我正在尝试使用ggplot,geom_histogram和scale_y_log10绘制具有log y标度的直方图.大多数区域(计数大于1的区域)看起来是正确的:背景是透明的,直方图条用默认的黑色填充.但是在计数为1时,颜色会反转:黑色背景和直方图条的透明填充.此代码(如下)在图中生成示例.

任何人都可以解释这个原因吗?我理解日志规模带来的问题,但我似乎无法找到解决方案.我希望有一个简单的解决方案,或者我忽略了一些东西.

set.seed(1)
df <- data.frame(E=sample(runif(100), 20, TRUE))
ggplot(df,aes(E)) + geom_histogram(binwidth=0.1) + scale_y_log10(limits=c(0.1,100)) + xlim(0,1)
Run Code Online (Sandbox Code Playgroud)

计数为1的反色方案示例

r ggplot2

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

使用ddply将函数应用于一组行

我使用ddply相当多但我不认为自己是专家.我有一个数据框(df),其分组变量"Group"具有值"A","B"和"C"以及要汇总的变量,"Var"具有数值.如果我使用

ddply(df, .(Group), summarize, mysum=sum(Var))
Run Code Online (Sandbox Code Playgroud)

然后我得到每个A,B和C的总和,这是正确的.但我想要做的是将每个Group变量分组相加,因为它们在数据框中排列.例如,如果数据框有

Group    Var
A        1.3
A        1.2
A        0.4
B        0.3
B        1.3
C        1.5
C        1.7
C        1.9
A        2.1
A        2.4
B        6.7
Run Code Online (Sandbox Code Playgroud)

期望的结果

A        2.9
B        1.6
C        5.1
A        4.5
B        6.7
Run Code Online (Sandbox Code Playgroud)

因此,所需的输出对每个Group变量分组执行数学函数,而不是对各个Group变量的所有实例执行数学函数.这可以在ddply中完成吗?

数据

dat <- structure(list(Group = c("A", "A", "A", "B", "B", "C", "C", "C", "A", "A", "B"),
                      Var = c(1.3, 1.2, 0.4, 0.3, 1.3, 1.5, 1.7, 1.9, 2.1, 2.4, 6.7)),
                 .Names = c("Group", "Var"), class = "data.frame", row.names = …
Run Code Online (Sandbox Code Playgroud)

grouping r plyr

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

在ggplot中有panel.border的问题

我想让我的情节边框成为黑色以外的某种颜色.我注意到如果我使用以下命令将默认主题设置为theme_bw():

theme_set(theme_bw())
Run Code Online (Sandbox Code Playgroud)

我可以将边框设置为我想要的颜色

theme(panel.border = element_rect(color="darkred", size=0.5, linetype="solid").
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.每个面板的边框,无论是刻面图还是单个图,都采用"深色"颜色,其余部分与我更改panel.border之前的相同.

但是,如果我使用不同的默认主题,比如theme_gray()或theme_classic(),则边框会发生变化但每个方面的内容都会被删除(完全白色).

有什么想法导致这种行为差异或我能做些什么来解决它?我想使用theme_gray()并在每个方面的边框周围放一条细彩色线条.

themes r panel ggplot2

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

geom_text在所有方面写入所有数据

我使用ggplot和facet_grid,我想在每个方面指出每个方面的观察数量.我按照许多网站上提供的示例进行操作,但是当我将其写入任何内容时,它会在所有四个图上将所有四个观察数字叠加在一起.

这里是geom_text图层命令:geom_text(data = ldata,aes(x = xpos,y = ypos,label = lab,size = 1),group = NULL,hjust = 0,parse = FALSE)

和ldata是一个数据框,列出了每个图上的坐标(xpos,ypos)和观察数(实验室).它在图上的正确位置打印数字,但所有四个都在所有四个图上相互重叠.我无法弄清楚我做错了什么.

LDATA:

xpos ypos实验室

1 10 1.35 378

2 10 1.35 2

3 10 1.35 50

4 10 1.35 26

r overwrite ggplot2 facets

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

使用 scale_y_log10 不会出现 geom_text

我可以使用geom_text就好了(使用汽车数据库的示例)将文本添加到 ggplot :

ggplot(cars, aes(speed, dist), color='blue') + 
geom_point(size=0.8) + 
geom_text(y=25, x=5, aes(label=paste("sigma == 1"), size=1.5), 
    hjust=0, parse=TRUE, color='blue')
Run Code Online (Sandbox Code Playgroud)

但是当我将 y 比例更改为对数时,我无法让文本出现在图表上:

ggplot(cars, aes(speed, dist), color='blue') + 
geom_point(size=0.8) + 
geom_text(y=25, x=5, aes(label=paste("sigma == 1"), size=1.5), 
    hjust=0, parse=TRUE, color='blue') + 
scale_y_log10()
Run Code Online (Sandbox Code Playgroud)

我试过改变文本大小和位置,但似乎无法理解。

text r ggplot2 geom-text

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

标签 统计

r ×5

ggplot2 ×4

facets ×1

geom-text ×1

grouping ×1

overwrite ×1

panel ×1

plyr ×1

text ×1

themes ×1