首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geom_bar允许条形图的最大值大于ylim

geom_bar允许条形图的最大值大于ylim
EN

Stack Overflow用户
提问于 2018-03-23 20:23:24
回答 1查看 380关注 0票数 1

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

我想将最大y值设置为1.5,当数据值大于1.5时,将在顶部切断条形图。

下面是一些要演示的代码。当yRange <- c(0,2)时,R返回

警告:删除2行包含缺失值(geom_bar)。

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

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2018-03-23 20:23:24

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

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49457770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档