我想expression在一个ggplot2方面标签上有一个R.
假设我正在策划tips data.frame:
library(reshape2)
> head(tips)
total_bill tip sex smoker day time size
1 16.99 1.01 Female No Sun Dinner 2
2 10.34 1.66 Male No Sun Dinner 3
3 21.01 3.50 Male No Sun Dinner 3
4 23.68 3.31 Male No Sun Dinner 2
5 24.59 3.61 Female No Sun Dinner 4
6 25.29 4.71 Male No Sun Dinner 4
Run Code Online (Sandbox Code Playgroud)
如下:
library(ggplot2)
sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) +
geom_point(shape=1) +
facet_wrap(~sex, ncol = …Run Code Online (Sandbox Code Playgroud) 我试图在数据集的2个不同方面生成2种不同颜色的不同geom_vlines.我这样做是为了强调两个不同方面的方法.
这是数据集:
Pclass Sex Age SibSp Parch Fare Cabin Embarked Survived
3 male 22 1 0 7.25 S 0
1 female 38 1 0 71.2833 C85 C 1
3 female 26 0 0 7.925 S 1
1 female 35 1 0 53.1 C123 S 1
3 male 35 0 0 8.05 S 0
1 male 54 0 0 51.8625 E46 S 0
Run Code Online (Sandbox Code Playgroud)
这是代码:
g<-ggplot(data = train3, aes(x = Age, y = Survived, colour = factor(Pclass)))
g<-g+facet_wrap(~Sex)
g<-g+geom_point(size = 4, alpha …Run Code Online (Sandbox Code Playgroud) 当scales参数设置为时,我似乎无法在刻面图上正确地着色轴文本"free".请考虑以下数据集:
library( ggplot2 )
X <- data.frame( V1 = LETTERS, V2 = runif( 26 ),
V3 = rep( c("F1", "F2"), each = 13 ) )
Run Code Online (Sandbox Code Playgroud)
我们可以在单个面上绘制数据,突出显示字母D,O,T,如下所示:
v <- ifelse( X$V1 %in% c( "D", "O", "T" ), "red", "black" )
g <- ggplot( X, aes( x = V1, y = V2 ) ) + geom_point() +
theme( axis.text.x = element_text( color = v ) )
Run Code Online (Sandbox Code Playgroud)
使用默认值scales = "fixed"正确地绘制切面图会突出显示两个面上的D,O,T.
g + facet_wrap( ~V3 )
Run Code Online (Sandbox Code Playgroud)
但是,切换scales …
我已经看到了类似的问题,以及关于在facet_grid中向ggplot 设置x/y lim添加功能的讨论.在我的研究中,我经常想要制作几个面板图,比如针对不同的模拟试验,其中轴限制保持不变以突出试验之间的差异.在演示文稿中显示绘图面板时,这尤其有用.在我生成的每个面板图中,各个图需要独立的y轴,因为它们通常是天气变量,温度,相对湿度,风速等.
ggplot() + ... + facet_wrap(~ ..., scales = 'free_y')
Run Code Online (Sandbox Code Playgroud)
因为我可以轻松制作不同天气变量的情节面板,效果很好.
当我在不同的绘图面板之间进行比较时,它具有一致的轴非常好.不幸的是,ggplot没有办法在面板图中设置每个图的个别限制.它默认使用给定数据的范围.上面链接的谷歌小组讨论讨论了这个缺点,但我无法找到有关是否可以添加此更新的任何更新.有没有办法欺骗ggplot设置个别限制?
样本数据框:
df <- data.frame(x=rep(1:10,4),y=rnorm(40),Case=rep(c("B","L","BC","R"),each=10))
Run Code Online (Sandbox Code Playgroud)
我可以用自己的方面绘制每个时间序列:
ggplot(df,aes(x=x,y=y,color=Case)) + geom_line()+facet_wrap(~Case,nr=2,nc=2)
Run Code Online (Sandbox Code Playgroud)
现在,假设我想将facet顺序更改为(从左上角开始,沿着行向右下方)"L","B","R","BC".这里因此通常的建议是做这个.但是,如果我重新排序因子级别,Case曲线的颜色也会改变.是否可以重新排序刻面,而不改变曲线颜色的顺序?我知道这听起来像一个奇怪的问题.问题是我的报告是一项正在进行中的工作,在我已向同事和管理层展示的报告的旧版本中,有多个图表或多或少像这样(没有facet_wrap):
ggplot(df,aes(x=x,y=y,color=Case)) + geom_line()
Run Code Online (Sandbox Code Playgroud)
换句话说,到现在为止,人们习惯将"B"与红色相关联.如果我重新排序,"L"将为红色,"B"为绿色,依此类推.我已经可以听到抱怨了......任何出路都没有?
我的ggplot有以下代码 - facet_wrap函数在页面上为每个Name绘制20个图,沿x轴有5个Pcode.我想计算每个Name的平均TE.Contr,并将该值绘制为每个图上的水平线(由Facet_wrap拆分).目前,我的代码绘制了ALL TE.Contr的平均值.值而不是平均值TE.Contr.具体名称.
T<-ggplot(data = UKWinners, aes(x = Pcode, y = TE.Contr., color = Manager)) + geom_point(size =3.5)+ geom_hline(aes(yintercept = mean(TE.Contr.)))
T<-T + facet_wrap(~ Name, ncol = 5)
Run Code Online (Sandbox Code Playgroud) 我想在每个方面添加两个回归线方程和R2.我采用Jayden的函数来解决问题,但我发现每个方程都是一样的.可能的原因是向函数发送了错误的数据子集.任何建议将被认真考虑!
我的代码:
p <- ggplot(data=df,aes(x=x))+
geom_point(aes(y = y1),size=2.0)+
geom_smooth(aes(y = y1),method=lm,se=FALSE,size=0.5,
fullrange = TRUE)+ # Add regression line;
annotate("text",x = 150,y =320, label = lm_eqn(lm(y1~x,df)), # maybe wrong
size = 2.0, parse = TRUE)+ # Add regression line equation;
geom_point(aes(y = y2),size=2.0)+
geom_smooth(aes(y = y2),method=lm,se=FALSE,size=0.5,
fullrange = TRUE)+ # Add regression line;
annotate("text",x = 225,y =50, label = lm_eqn(lm(y2~x,df)),
size = 2.0, parse = TRUE)+ # Add regression line equation;
facet_wrap(~trt)
Run Code Online (Sandbox Code Playgroud)
我的数据帧:
x y1 y2 trt
22.48349 34.2 …Run Code Online (Sandbox Code Playgroud) 我想在facet_wraps的上面一行中的图上显示x轴刻度.例如:
library(ggplot2)
ggplot(diamonds, aes(carat)) + facet_wrap(~ cut, scales = "fixed") + geom_density()
Run Code Online (Sandbox Code Playgroud)
生成这个情节:
有没有一种简单的方法来实现这个结果?
我正在尝试使用facet_wrap 创建一些多重图。但是我不确定这是否是适合我的图表的正确方法。这是一个简短的可重现示例:
ggplot(airquality, aes(x = Day, y = Temp)) +
facet_wrap(~Month) +
geom_line()
Run Code Online (Sandbox Code Playgroud)
这会在这里产生这个图:
是否可以使用facet_wrap方法将第二行中的两个图“居中”?
请注意,我不想重新排序图,我只想将第二行居中
是否有一种规范的方法可以在其中添加方面标题facet_grid?或者一种特定行标签的方法facet_wrap?(没有 geom_text, geom_label, 或 grob 操作。)
考虑:
dat <- data.frame(rowInd = paste0("R", c(1, 2, 2, 3, 3, 3)), colInd = paste0("C", c(1, 1, 2, 1, 2, 3)),
facetName = c("1-10", "60-70", "80-90", "100-110", "120-130", "140-150"), val=1:6)
dat
# rowInd colInd facetName val
# 1 R1 C1 1-10 1
# 2 R2 C1 60-70 2
# 3 R2 C2 80-90 3
# 4 R3 C1 100-110 4
# 5 R3 C2 120-130 5
# …Run Code Online (Sandbox Code Playgroud) facet-wrap ×10
ggplot2 ×10
r ×10
facet ×4
facet-grid ×1
geom-hline ×1
graph ×1
label ×1
plot ×1