我正在尝试绘制一个图表,我可以指定y轴的最小值或最大值。但我得到Error in if (zero_range(range)) { : missing value where TRUE/FALSE needed
您可以将一个值保留为NA,以便根据数据范围进行计算。
因此,我做了:
#Getting some data in
plot <- ggplot(mydata,
aes_string(y="yvar", x="xvar", colour="group", group="group", fill="group")
)
#Adding some error bars
plot <- plot + geom_errorbar(aes(ymax=agg+var, ymin=agg-var), size=0.5, colour="black", data=mydata)
plot <- plot + geom_point(size=4)
plot <- plot + geom_line(size=1)
#Here is when I just want to set y max
plot <- plot + coord_cartesian(ylim= c(NA, 100))
如果我删除ylim
或将NA
更改为数值,则效果很好。我在这里缺少什么?
答案 0 :(得分:8)
您可以使用展开限制仅在一个方向上扩展轴。例如:
names(df) <- c("AAPL", "TMUS", "AKAM", "INTC", "DE")
for (n in names(df)) {
code <- paste0("lm_", n , " <- lm(", n, " ~ ., data=df)")
eval(parse(text=code))
}
对于您的示例,它将是:
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
expand_limits(y=c(NA, 50))
您甚至可以提供单一价值。如果该值大于数据的最大值,则会扩展最大值。如果低于数据的最小值,它将扩展最小值。在您的示例中:
plot + expand_limits(y=c(NA, 100))
以下是两个可重复的例子:
plot + expand_limits(y=100)