小编kda*_*ria的帖子

ggplot2 - 使用拆分框图对齐geom_point

我是R的新手并且一直在使用谷歌(主要是指导我到这个网站)来摸索我为项目制作可通过的图表.我无法找出要搜索的内容,找到与我有同样问题的其他人,所以我决定提出要求.

我有一个看起来像这样的数据集:

    ATM TEMP PARENT variable value
1     1    5      1     DEAD     2
2     1    5      2     DEAD     0
3     1    5      3     DEAD     1
4     1   20      1     DEAD     1
55    1    5      1     LIVE    47
56    1    5      2     LIVE    42
57    1    5      3     LIVE    45
58    1   20      1     LIVE    45
109   1    5      1 SWIMMING     1
110   1    5      2 SWIMMING     8
111   1    5      3 SWIMMING     4
112   1   20      1 SWIMMING     4
Run Code Online (Sandbox Code Playgroud)

ATM代表压力实验,温度,温度,PARENT,幼虫来自3个成年人中的一个,变量代表在给定压力/温度下幼虫的状况,数值是多少(最初不同,但我使用reshape2合并它们. …

r ggplot2 boxplot

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

替换列表列表中的元素

applyR中的函数是简化循环以获得输出的好方法.是否有一个等效函数可以帮助人们在替换向量值时避免循环?通过实例更好地理解这一点......

# Take this list for example
x = list( list(a=1,b=2), list(a=3,b=4), list(a=5,b=6) )

# To get all of the "a" elements from each list, I can do
vapply(x,"[[",1,"a")
[1] 1 3 5

# If I want to change all of the "a" elements, I cannot do
vapply(x,"[[",1,"a") = 10:12
Error in vapply(x, "[[", 1, "a") = 10:12 : 
  could not find function "vapply<-"
# (this error was expected)

# Instead I must do something like this...
new.a = …
Run Code Online (Sandbox Code Playgroud)

replace r

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

facet_wrap和缩放点大小

简而言之: 我想为使用的双面板绘图的每个"面板"分别设置图例facet_wrap.facet_wrap(scales="free")当我想要不同的轴刻度时,使用工作正常,但不适用于点的大小.

背景: 我有几个样本的数据,每个样本有三个测量:x,yz.每个样本来自1类或2类.xy在每个类中具有相同的分布.但是,1级的所有z测量值都小于1.0; 第2类的z测量值范围为0到100.

我被卡住的地方:分别在x和y轴上 绘制xy.使每个点的面积与其z值成比例.

d = matrix(c(runif(100),runif(20)*100),ncol=3)
e = data.frame( gl(2,20), d )
colnames(e) = c("class","x","y","z")
ggplot( data = e, aes(x=x, y=y, size=z) ) + 
  geom_point() + scale_area() +
  facet_wrap( ~ class, ncol=1, scales="free" )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

问题: 请注意,第一个面板上的点很难看到,因为它们位于用于单个图例的刻度的最低端,范围从0到100.甚至可以有两个单独的图例(每个图例都有一个不同的范围)或者我应该制作两个图并将它们与视口组合?

r ggplot2 facet-wrap

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

ggplot2 geom_point,带有分箱x轴,用于二进制数据

我正在尝试为二进制数据创建带有分箱x轴的散点图.当我使用geom_point二进制y时,情节很无用(见图1).如图2所示,我想根据x轴的值对数据进行分类,然后使用geom_point(将每个bin中的obs数量映射到该点的大小)绘制每个bin中的avg x和avg y ).我可以通过聚合数据来做到这一点,但我想知道ggplot是否可以直接进行.我玩过stat_bindot等等,但无法找到解决方案.有任何想法吗?下面是一些代码.

谢谢!

# simulate data
n=1000
y=rbinom(n,1,0.5)
x=runif(n)
data=data.frame(x,y)

# figure 1 - geom_point with binary data, pretty useless!
ggplot(data,aes(x=x,y=y)) + geom_point() + ylim(0,1)

# let's create an aggregated dataset with bins
bin=cut(data$x,seq(0,1,0.05))
# I am sure the aggregation can be done in a better way...
data.bin=aggregate(data,list(bin),function(x) { return(c(mean(x),length(x)))})

# figure 2 - geom_point with binned x-axis, much nicer!
ggplot(data.bin,aes(x=x[,1],y=y[,1],size=x[,2])) + geom_point() + ylim(0,1)
Run Code Online (Sandbox Code Playgroud)

图1和2:

r ggplot2

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

标签 统计

r ×4

ggplot2 ×3

boxplot ×1

facet-wrap ×1

replace ×1