【发布时间】:2020-05-06 21:35:48
【问题描述】:
我的数据集由 y 轴上介于 -200 和 100% 之间的数据组成。 使用 ylim(0,100) 函数我摆脱了负值(我想要的),但是当使用 geom_smooth 时,此函数仅根据 ggplot 中显示的数据计算趋势。
有没有办法在我的 ggplot 中仅显示 0-100% 的数据子集时使用完整数据集制作趋势?
这是一个简化的例子;
df1 <- read.table(text = "
Group Sample Percentage
A 185 50
B 185 60
C 185 70
D 185 60
A 159 40
B 159 -20
C 159 50
D 159 45
A 265 -35
B 265 30
C 265 10
D 265 40
A 143 60
B 143 -30
C 143 70
D 143 75
", header = TRUE)
df1$Sample <- factor(df1$Sample)
ggplot() +
theme_light() +
geom_point(data = df1, aes(x = Sample, y = Percentage, color = Group), size = 2) +
geom_smooth(data = df1, aes(x = as.numeric(Sample), y = Percentage, color = Group), method=lm, se=FALSE, fullrange=TRUE) +
ylab("(%)") +
scale_color_manual(values=c('orange2','red','purple','blue'))
当我将 ggplot 与我的完整数据集一起使用时,我得到了这些趋势;
当我使用时;
plot + ylim(0,100)
我想显示第一张图的趋势,但将 y 轴限制为仅显示 0-100 之间的点,就像这样;
提前致谢!
【问题讨论】:
-
请提供minimal reproducible example:支持问题和您尝试过的代码的最小数据集。
-
听起来你在继承数据。您可以在
geom_smooth函数中确定要用作参数的数据。 -
@markhogue 我该怎么做?
-
geom_smooth(data=...)geom_smooth,其余的使用子集即可。 -
我使用的是完整的数据集,如您在上面的示例中所见,但 ylim 是它的子集,您能详细说明您的意思吗? @chemdork123