是否可以将基于组的不同线型添加到ggscatter中的reg.line?

是否可以将基于组的不同线型添加到ggscatter中的reg.line?,r,ggplot2,R,Ggplot2,我正在一个因变量FA和受试者年龄(以年为单位)之间创建一个散点图,该散点图有两组条件(运动和休息) 我在设置回归线时遇到了一些问题,这样我就可以使运动组的回归线为实线,而其余组的回归线为虚线 似乎ggscatter不允许我在add.params=list(linetype=c(“实线”、“虚线”))中提供两种不同的线型。 我已经看过了源代码并使用了 add.params=list(linetype=“domind”)更改Ex和Rest组的线型。但是当尝试添加时,我得到了错误 错误:长度必须为1或

我正在一个因变量FA和受试者年龄(以年为单位)之间创建一个散点图,该散点图有两组条件(运动和休息)

我在设置回归线时遇到了一些问题,这样我就可以使运动组的回归线为实线,而其余组的回归线为虚线

似乎ggscatter不允许我在
add.params=list(linetype=c(“实线”、“虚线”))中提供两种不同的线型。

我已经看过了源代码并使用了

add.params=list(linetype=“domind”)
更改Ex和Rest组的线型。但是当尝试添加时,我得到了错误

错误:长度必须为1或与数据(160):线型相同


diffusion\u dataHmm,我认为使用
ggpubr::ggscatter
(顺便说一句,您最好添加
library()
调用)。 但是使用ggplot2非常简单

如果您愿意使用“simple ggplot”,而不是在上面构建的疯狂软件包,那么这里有一个解决方案:


图书馆(GG2)
ggplot(扩散数据、aes(年龄、完整cov、颜色=条件))+
几何点()+#绘制点
几何平滑(aes(线型=条件))+#绘制回归曲线/直线。
#对于回归线,指定方法='lm'
缩放(颜色)(调色板=灰色)#只是为了它
#>`geom_smooth()`using method='黄土'和公式'y~x'

由(v0.2.1)于2019-07-24创建

您可以使用
scale\u linetype\u手册


请注意,我已经删除了绘图代码的大部分,因为大多数代码对于实际问题来说都不是必需的

下面是我用来重新创建图形的代码,但使用ggplot而不是ggscatter,我可以使用geom_smooth()按组更改线型和颜色


)

欢迎来到SO。请提供一些数据。我们想提供帮助,但回答需要时间,这是我们捐赠的。所以请努力创造一个新的世界。否则很难帮助你。事实上,没有人会帮助你。我对如何以当前格式获取数据进行了一些编辑,但我无法附加或嵌入图形图片或添加excel文件。有没有其他方法可以提供一个更具再现性的例子?别介意我看到了如何包含图像。您是说我需要包含excel文件/数据以提供可复制的示例?如果是这样的话,我该怎么做呢?看看这里-它解释了几种方法来输入一些样本数据供参考我已经从你的问题中删除了有害的代码-请不要将代码放在那里,这会改变我们的工作目录。改为创建一个示例数据框,例如使用
dput()
-查看前面的链接谢谢您的回复。我会这样做的。我的投票没有显示,但是,在你的帮助下,我可以用ggplot来创建图表。很好,很高兴我能帮上忙。如果您对答案满意,那么您可以使用我答案旁边的复选标记接受它。这样,问题就不会显示为“未回答”。如果你不太高兴,就不要接受它!
diffusion_data <-
structure(list(FA_full_cov = c(0.153232, 0.164497, 0.111886, 
0.14139, 0.130546, 0.18607, 0.181865, 0.139148, 0.178903, 0.136147, 
0.140427, 0.143346, 0.140975, 0.148248, 0.128336, 0.147552, 0.126607, 
0.127531, 0.153574, 0.124305, 0.168183, 0.146543, 0.135313, 0.139777, 
0.148862, 0.154091, 0.131398, 0.145124, 0.136015, 0.128609, 0.159028, 
0.158221, 0.124092, 0.139492, 0.142623, 0.195182, 0.229651, 0.144567, 
0.169234, 0.181687, 0.136057, 0.14369, 0.143988, 0.152487, 0.109607, 
0.139264, 0.139382, 0.13402, 0.159948, 0.141635, 0.177908, 0.133823, 
0.196866, 0.204928, 0.15321, 0.150005, 0.126811, 0.158618, 0.135901, 
0.147437), age = c(63, 57, 75, 75, 72, 58, 60, 63, 56, 58, 65, 
81, 65, 65, 77, 74, 74, 67, 55, 56, 79, 59, 64, 71, 60, 63, 70, 
68, 74, 68, 63, 57, 75, 75, 72, 58, 60, 63, 56, 58, 65, 81, 65, 
65, 77, 74, 74, 67, 55, 56, 79, 59, 64, 71, 60, 63, 70, 68, 74, 
68), Conditions = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L), .Label = c("Ex", "Rest"), class = "factor")), row.names = 
c(NA, 60L), class = "data.frame")

library(ggpubr)

a = ggscatter(diffusion_data, y="FA_full_cov", x="age", color = "Conditions", palette = c("black", "grey39"), shape = "Conditions", add = "reg.line", add.params = list(linetype=c("solid", "dotted")), conf.int = TRUE, cor.coef = TRUE, cor.method = "pearson", cor.coef.size = 5, cor.coef.coord = c(70,.25)) +
  ggtitle("Hippocampal FA with Respect to Age") + xlab("Age (years)") + ylab("FA") +  theme(plot.title = element_text(hjust = 0.5, size = 30)) +
  theme(axis.text.x = element_text(size = 20)) + 
  theme(axis.text.y = element_text(size = 15)) +
  theme(axis.title.y = element_text(size = 20)) + 
  theme(axis.title.x = element_text(size = 20)) +
  theme(legend.text = element_text(size=15)) + 
  scale_shape_manual(values = c(16,1)) 

ggpar(a, ylim = c(.05,.25))

a
b = ggplot(diffusion_data, aes(age,FA_full_cov, shape=Conditions, color = 
Conditions)) + geom_point(size=2.5)+ scale_color_manual(values = c("black", 
"grey39"))+ 
geom_smooth(aes(linetype = Conditions, fill=Conditions), method = "lm", formula = 
y~x, color ="black") +
scale_fill_manual(values = c("black", "grey39")) +
scale_shape_manual(values = c(16,1)) +
ggtitle("Hippocampal FA with Respect to Age") + xlab("Age (years)") + ylab("FA") +  
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5, size = 30),
axis.text.x = element_text(size = 20),
axis.text.y = element_text(size = 15),
axis.title.y = element_text(size = 20),
axis.title.x = element_text(size = 20),
legend.text = element_text(size=15),
legend.text.align = 0,
legend.position = "top"