r ggplot geom_bar允许bar最大值大于ylim

时间:2018-03-23 20:23:25

标签: r ggplot2

我有一些数据,相关的实质范围是0到1.我得到的结果远远超过1; 3-6。发生这种情况时,geom_bar会将值设置为NA。

我想将最大y值设置为1.5,当数据值大于1.5时,栏顶部会被切断。

这是一些要演示的代码。使用yRange< - c(0,2),R返回

  

警告:删除了包含缺失值的两行(geom_bar)。

并将两个条形图绘制为1和2作为值。

dt <- data.table(scenario = c("Scen1", "Scen2", "Scen3", "Scen4"), value = c(1, 2, 3, 4))
yRange <- c(0,2)
p <- ggplot(dt, aes(x = scenario, y = value)) +
  geom_bar(stat = "identity", position = "dodge", color = "black") +
  scale_y_continuous(name = "Y label", limits = yRange)
print(p)

1 个答案:

答案 0 :(得分:1)

解决方案是使用coord_cartesian而不是scale_y_continuous,如下面的代码所示。我在条形图上添加了一个文本标签,以便更清楚地看到条形图超出了图形的顶部。其他改进是使用颜色突出显示条形值。

dt <- data.table(scenario = c("Scen1", "Scen2", "Scen3", "Scen4"), value = c(1, 2, 3, 4))
yRange <- c(0,2)
p <- ggplot(dt, aes(x = scenario, y = value)) +
  geom_bar(stat = "identity", position = "dodge", color = "black") +
  coord_cartesian( ylim = yRange) +
  geom_text(aes(x=scenario,y=value,label=value),position = position_fill(vjust = 0.5))
print(p)