我有一个数据框,dt
其中包含有关潜水行为和三个不同区域的数据BA, MI, FA
。我想ba, mi, fa
使用 向我的多个绘图 ( )添加主标题ggarrange
,但我没有找到有效的方法。我想在我的 3 个图的顶部添加主标题“潜水深度(米)”
library(data.table)
library(ggplot2)
dt = data.table(area= c("BA", "FA", "MI"),
dmean = c(30, 50, 200, 76, 467, 87, 98, 10, 240, 176, 89, 400, 340, 10, 40, 54, 89, 340, 205),
sex = c("F", "M"))
ba<-ggplot(dt[dt$area=="BA",], mapping = aes(y = dmean, x = sex, color = sex, fill=sex))+
geom_violin(alpha=.5,scale = "width",trim = FALSE, position=position_dodge(1))+
ggtitle("Dive mean at BA and sex")+
scale_y_log10(breaks = c(10, 30, …
Run Code Online (Sandbox Code Playgroud) 我需要将代表考古遗址的地图与不同考古物体的XY ggplot图表结合起来.地图是在tiff文件中,必须尊重它的比例.
首先,这是地图,以红色突出显示参考比例(在X轴中,从-6000到-4000,例如距离为20米;在Y轴中,从900到2100有12米).
我的ggplot图表是通过运行以下代码获得的:
archaeo <- ggplot() +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2+250, b = Diameter_N.S/2+250, angle = 0),
lwd=0, col="darkgray", fill="gray", alpha=0.15) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2+120, b = Diameter_N.S/2+120, angle = 0),
lwd=0, col="darkgray", fill="gray", alpha=0.25) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2, b = Diameter_N.S/2, angle = 0),
lwd=0.5, col="darkgray", fill="gray", alpha=0.75) +
geom_point(data=Unit_H, aes(X, Y), size = 0.5) +
geom_point(data=Refits_H_trans, aes(x,y,group=sample, …
Run Code Online (Sandbox Code Playgroud) 我一直在努力对fviz_pca
来自 R 包的函数内的输出图中的默认点形状进行更改FactoExtra
。
该图以我想要自定义的点形状的特定顺序*出现。
*对应的形状分别为16、17、15、12、0、8
fviz_pca_biplot(PCA, axes = c(1, 2),
label="var", col.var = "black", #setas
geom = "point", pointsize = 2, col.ind=PCADF$groups,
addEllipses = TRUE, ellipse.level = 0.95,
ellipse.type ="confidence", palette = "aaas") + theme_minimal()
Run Code Online (Sandbox Code Playgroud)
我尝试添加到函数中:
geom_point(aes(shape = c(19,20,21,22,23,24)))
Run Code Online (Sandbox Code Playgroud)
它向我返回了一条错误消息:
geom[1] 中的错误:“环境”类型的对象不是可子集的
在函数 fviz_pca 中管理和自定义点形状的任何建议?
利用 中的示例包代码ggpubr
,该ggdotchart
函数不会创建单独的段,如示例中所示,而是只有一个段,尽管点似乎放置在正确的方向。有谁对可能出现的问题有任何提示吗?我认为这可能是由于 tibbles vs. df 等因素造成的,但我一直无法确定问题所在。
代码:
df <- diamonds %>%
filter(color %in% c("J", "D")) %>%
group_by(cut, color) %>%
summarise(counts = n())
ggdotchart(df, x = "cut", y ="counts",
color = "color", palette = "jco", size = 3,
add = "segment",
add.params = list(color = "lightgray", size = 1.5),
position = position_dodge(0.3),
ggtheme = theme_pubclean()
)
Run Code Online (Sandbox Code Playgroud)
我是 R 新手,并尝试使用 R 在同一页面上显示图形和图像。我尝试使用library(ggpubr)
和ggarrange()
运行。
导入我使用的图像library(png)
并readPNG()
导入我的图像。
我想要的最终结果是这样的:
我用来创建面板的代码是:
library(ggpubr)
library(png)
data("ToothGrowth")
bxp <- ggboxplot(ToothGrowth, x = "dose", y = "len",
color = "dose", palette = "jco")
dp <- ggdotplot(ToothGrowth, x = "dose", y = "len",
color = "dose", palette = "jco", binwidth = 1)
img1 <- readPNG("image1.png")
img2 <- readPNG("image2.png")
im_A <- ggplot() + background_image(img1) # tried to insert the image as background.. there must be a better way
im_B <- ggplot() …
Run Code Online (Sandbox Code Playgroud) 这是我的问题:我正在循环我的数据。对于循环的每次迭代,我创建了 3 个在同一页面上组织的图,并且我希望每次迭代将一页存储在同一个 pdf 文件中。
我正在使用 ggpubr 包中的 ggarrange (我希望图 3 显示在第二行并跨越 2 列)。
这是我如何进行(在一些测试数据上):
我创建测试数据框:
tt <- data.frame(group=rep(c("A", "B"), 3), value=1:6)
tt2 <- data.frame(x=1:10, y=1:10)
Run Code Online (Sandbox Code Playgroud)
我在对象中创建和存储图:
p1 <- ggplot(tt, aes(x=group, y=value, fill=group)) +
geom_dotplot(binaxis="y")
p2 <- ggplot(tt, aes(x=group, y=value, fill=group)) + geom_boxplot()
p3 <- ggplot(tt2, aes(x=x, y=y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
这有效:
pdf("test.pdf")
ggarrange(ggarrange(p1, p2),
p3,
nrow=2,
heights=c(2, 1))
dev.off()
Run Code Online (Sandbox Code Playgroud)
这不起作用(它不会引发错误,但 pdf 文件不包含任何页面):
pdf("test.pdf")
for(i in 1:2){
ggarrange(ggarrange(p1, p2),
p3,
nrow=2,
heights=c(2, 1))
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
我想也许嵌套的 ggarrange 可能是一个问题,但这也不起作用:
pdf("test.pdf")
for(i in …
Run Code Online (Sandbox Code Playgroud) 我正在使用4个不同的图,并且正在使用ggpubr软件包中的ggarrange()将它们放在一个图中。我准备了一个例子:
library(ggpubr)
library(ggplot2)
p1 <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point() + ggtitle("Plot 1")
p2 <- ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) + geom_point() + ggtitle("Plot 2")
p3 <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Width)) + geom_point() + ggtitle("Plot 3")
p4 <- ggplot(iris, aes(x = Petal.Length, y = Sepal.Width)) + geom_point() + ggtitle("Plot 4") +
facet_wrap(~Species)
plot.list <- list(p1, p2, p3, p4)
ggarrange(plotlist = plot.list)
Run Code Online (Sandbox Code Playgroud)
我想在单个图上画一个边框,如下所示:
有没有办法画这个边界?谢谢!
我目前正在使用 R 中的 ggpubr 包(基于 ggplot2)绘制数据。当我绘制包括标准误差在内的两个条件的均值时,y 轴应限制在 1 到 7 之间,我使用以下方式表示:
p <- ggline(data, x = "condition", y = "measure",
add = c("mean_se"),
ylab = "Measure")
ggpar(y, ylim = c(1, 7), ticks=T, yticks.by = 1)
Run Code Online (Sandbox Code Playgroud)
然而,在最终图中,y 轴仅显示 1 到 6 之间的值
我尝试使用本机 ggplot2 绘制相同的数据,但一旦我更改布局,问题仍然存在。对于 ggplot2 我使用:
p <- ggplot(data, aes(x=condition, y=measure)) +
geom_line() +
geom_point()+
geom_errorbar(aes(ymin=measure-se, ymax=measure+se), width=.2, position=position_dodge(0.05)) +
ylab("measure") +
xlab("Condition")
p + scale_y_continuous(name="measure", limits=c(1, 7), breaks=c(1:7))
p + theme_classic()
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我解决这个问题,那就太好了。
编辑:根据评论中的建议,这是我尝试使用 ggplot2 绘制的数据:
structure(list(condition = structure(3:4, .Label …
Run Code Online (Sandbox Code Playgroud) 我发现使用stat_regline_equation
(with ggscatter
) 对于快速将回归方程添加到图中非常有用,特别是当我在多个方面进行多重回归时。然而,它似乎被困在 2 位有效数字上。我知道可以从 an 中提取系数lm
,然后用注释显示它们。但从多个方面来看,这似乎确实令人畏惧和挑剔。是否可能有一个功能正在开发中(或者已经在这里,我不知道)可以用来执行此操作stat_regline_eq
?我有希望,因为您可以stat_cor
为 r 平方和 p 值等指定数字!任何建议或帮助将不胜感激。下面的可重现示例:
library(tidyverse)
library(ggpubr)
ggscatter(diamonds, x="carat", y="table", add="reg.line") +
facet_wrap(~color) +
stat_regline_equation(label.y=90)
summary(lm(table ~ carat, data=filter(diamonds, color=="D")))
Run Code Online (Sandbox Code Playgroud)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 56.46453 0.05438 1038.3 <2e-16 ***
carat 1.42911 0.07255 19.7 <2e-16 ***
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,D 中显示的截距ggscatter
偏离了 0.5。
我正在尝试创建一个华夫饼图,其中共有 9 个图。然而,无论我如何尝试,我都无法减少图中 3 列之间的间距。这就是我现在的情节。 华夫饼情节足球
到目前为止我使用的代码是这样的:-
fig1 <- waffle(Intvec, rows=10, size=2.0,
colors=c("#cb181d", "#238b45", "#0570b0",
"#fec44f", "#ec7014", "#6a51a3"),
title = "Inter")
fig1$layers[[1]]$aes_params$colour <- '#252525'
fin1 <- fig1 + theme(plot.background = element_rect(fill = "#252525", colour = "#252525")) +
theme(legend.position = "none") +
labs(y = "Serie A", main = "Inter") +
theme(axis.title.y = element_text(color="#bdbdbd", size=18, face="bold"),
plot.title = element_text(colour = "#ffffff", size = 20, face = "bold"))
fin1
Run Code Online (Sandbox Code Playgroud)
在使用 ggarrange 之前对其他 8 个地块执行相同的操作
fig <- ggarrange(fin1, fin2, fin3, fin4, fin5,
fin6, fin7, …
Run Code Online (Sandbox Code Playgroud)