R 缩放ggplot2中的Y轴错误条
大家好,我正在使用Rstudio和以下数据帧:R 缩放ggplot2中的Y轴错误条,r,ggplot2,R,Ggplot2,大家好,我正在使用Rstudio和以下数据帧: X NSUM MEAN LOWMEAN UPMEAN 2 Nonmonetary Incentive 800 4.86 4.58 5.15 3 $0 (no mention) 822 5.06 4.78 5.35 4 $25 830 6.35 6.06 6.65 5 $50 815 6
X NSUM MEAN LOWMEAN UPMEAN
2 Nonmonetary Incentive 800 4.86 4.58 5.15
3 $0 (no mention) 822 5.06 4.78 5.35
4 $25 830 6.35 6.06 6.65
5 $50 815 6.84 6.54 7.14
6 $75 864 7.00 6.70 7.29
因此,我使用以下命令创建了这个漂亮的绘图:
plot1 <- ggplot(rawdata, aes(x = rawdata$X, y = rawdata$MEAN)) +
geom_point(colour = "red") +
geom_errorbar(aes(ymin = rawdata$LOWMEAN, ymax = rawdata$UPMEAN, width =0), colour = "black") +
coord_flip()
它绘制了平均值和一个显示上下限的条形图。我想做的是更改y轴,这样记号就不会经常出现,但无论我做什么,ylim或scale_y_continuous我都会得到错误:
离散值应用于连续变量 如果您能够: 提供可复制的数据,而不是向我们提供输出和 向我们展示您传递给ylim和 连续缩放。没有这一点,就很难知道到底是什么 你做错了,因为这就是你的问题所在。我们无法修复它 如果我们不知道的话。
像scale_y_continuousbreaks=seq4.5、7.5、by=1这样的东西应该可以正常工作。这以1为增量将轴rawdata$平均值从4.5缩放到7.5。您应该能够以这种方式使轴工作良好。类似于ylim4.5、7.5的东西也可以工作。当我把它添加到你的ggplot代码中时,它工作得很好。所以有几件事 首先,aes。。。在默认数据集的上下文中计算其参数。这意味着aesx=X,。。。将首先在data=。。。在您的情况下,参数rawdata。您不应在aes中使用,例如rawdata$X。。。。这可能导致不可预测且通常非常模糊的结果 其次,要控制轴记号的数量,请使用breaks=。。。和限制=。。。以比例y连续。。。。前者将设置刻度,但可能不会显示所有刻度,因为限制是自动设置的。后者将覆盖默认限制。下面是两个数据示例:
library(ggplot2)
ggplot(rawdata, aes(x = X, y = MEAN)) +
geom_point(colour = "red") +
geom_errorbar(aes(ymin = LOWMEAN, ymax = UPMEAN, width =0)) +
coord_flip()+
scale_y_continuous(breaks=c(4,5,6,7,8))
注意我们是如何将断点设置为4,5,6,7,8的,但是我们没有看到4和8。这是因为ggplot自动设置限制,不包括4和8。您可以按如下方式强制执行此操作:
ggplot(rawdata, aes(x = X, y = MEAN)) +
geom_point(colour = "red") +
geom_errorbar(aes(ymin = LOWMEAN, ymax = UPMEAN, width =0)) +
coord_flip()+
scale_y_continuous(breaks=c(4,5,6,7,8), limits=c(4,8))
最后,如果你想消除主刻度之间的模糊网格线,你需要使用主题
你不应该在ggplot中使用$。在第一个参数中,您将rawdata指定为您的数据,您不必一直重新键入它。
ggplot(rawdata, aes(x = X, y = MEAN)) +
geom_point(colour = "red") +
geom_errorbar(aes(ymin = LOWMEAN, ymax = UPMEAN, width =0)) +
coord_flip()+
scale_y_continuous(breaks=c(4,5,6,7,8), limits=c(4,8))+
theme(panel.grid.minor=element_blank())