我试着把一条线性回归线画成一张散点图,在x轴上有一个有序的分类变量.但是,我的代码没有绘制线条(也没有警告或错误).可以画出绝对x轴的回归线吗?也许我必须具体说明group级的顺序?明确设置级别并没有帮助.

# libraries
library(ggplot2)

# dummy data
dat <- data.frame(group = as.factor(c(rep("A", 10), rep("B", 10))),
                  variable = c(rnorm(10, mean = 3), rnorm(10, mean = 12)))

# specify order of levels explicitly
dat$group <- factor(dat$group, levels = c("A", "B"))

# plot
ggplot(dat, aes(x = group, y = variable)) +
  geom_point() +
  geom_smooth(method = "lm")

输出:

enter image description here

推荐答案

geom_smooth只能在连续变量上进行平滑,并会try 为离散变量的每个级别创建一个平滑.当离散变量被映射到x轴或y轴时,这通常不起作用.但是我们可以通过指定geom_smooth(aes(group = 1))来解决gglot的默认行为,这将覆盖默认的分组行为.

ggplot(dat, aes(x = group, y = variable)) +
  geom_point() +
  geom_smooth(aes(group = 1), method = "lm")

enter image description here

R相关问答推荐

for循环和if else在R中

R绑定具有不同时间观察的两个数据帧

当y大于阈值和值范围时,在时间序列中突出显示区域

如何计算新变量中的通货inflating 率?

R包terra在投影时如何决定模板格栅属性?

给定R中另一行中的值,如何插补缺失值

如果列中存在相同的字符串,则对行值进行总和

找出疾病消失的受试者

在垂直轴中包含多个ggplot2图中的平均值

手动打印线型gplot

在另一个函数中调用ggplot2美学

将向量组合到一个数据集中,并相应地命名行

如何改变x轴比例的列在面

如何编辑gMarginal背景以匹配绘图背景?

R Select()可以测试不存在的子集列

`lazy_dt`不支持`dplyr/across`?

将二进制数据库转换为频率表

使用`Watch()`和`renderUI()`时,不再满足仍出现在SHILINY AFTER条件中的条件输入

在R中创建连续的期间

需要一个函数来在第一行创建一个新变量,然后用新变量替换一个不同的变量(对于多行)