R中的负值geom_col()低于0

R中的负值geom_col()低于0,r,ggplot2,R,Ggplot2,我用ggplot创建了一个绘图,但有些数据条和列的值为负值,低于0,这对我来说很奇怪。如何修复它(列的值不应更改)?我试图在绘图主体中使用limits=,但它改变了列的值。 谢谢大家! div = 1000 sales_plot <- ggplot(sales, aes(week, net/(div*div))) + geom_col() + labs(x = "", y = "Net Value, RUB", title = "S

我用
ggplot
创建了一个绘图,但有些数据条和列的值为负值,低于0,这对我来说很奇怪。如何修复它(列的值不应更改)?我试图在绘图主体中使用
limits=
,但它改变了列的值。 谢谢大家!

div = 1000
sales_plot <- ggplot(sales, aes(week, net/(div*div))) +  
geom_col() +
  labs(x = "", y = "Net Value, RUB", title = "Sales by week, RUB") +
  theme(axis.text.x = element_text(angle = -30, vjust = 1, size = 7)) +
  scale_y_continuous(label = unit_format(unit = "M")) +
  stat_summary(fun.y = sum, aes(label = paste(format(round(as.numeric(..y..),1), big.mark = ",", nsmall = 0, digits = 0),
                                              "M", sep = " " )),
               geom = "text", vjust = -2, size = 2.5)
div=1000

sales_plot如果没有数据,我可以猜测
net
列包含一些负数。我建议你先总结一下每周的销售情况,然后再将其制成图表。由于我没有实际数据,这里是我的伪代码

library(dplyr)
library(ggplot2)

sales_summary <- sales %>%
  group_by(week) %>%
  summarize(net_value = net / (div * div))

sales_plot <- ggplot(data = sales_summary, aes(x = week, y = net_value)) +
  geom_bar(stat = "identity") +
  geom_text(vjust = -2, size = 2.5) +
  labs(x = "", y = "Net Value, RUB", title = "Sales by week, RUB") +
  theme(axis.text.x = element_text(angle = -30, vjust = 1, size = 7)) +
  scale_y_continuous(label = unit_format(unit = "M"), expand = c(0, 0))
库(dplyr)
图书馆(GG2)
销售额汇总%
按(周)分组%>%
汇总(净值=净值/(div*div))

sales\u plot如果你想改变天平的越界行为,那么你可以设置任何限制,你可以使用
scale\u y\u continuous(…,oob=scales::oob\u keep)
。或者做
coord\u cartesian(ylim=…)
。我应该为
oob\u keep
选择哪些参数?还是毫无争议?我试着在
scale\u y\u continuos
中写它,但是什么也没发生,倒数第二列总是在0以下
oob\u keep
应该传递一个函数,所以你给这个函数的参数。您应该将其与
limits=…
一起使用。请使用
dput
或我们可以复制和使用的东西添加数据。还显示共享数据的预期输出。阅读有关和的文章。谢谢!我认为原因是我通过几个字段将值分组,并且与第二个字段对应的一列包含一些负值(尽管我在创建绘图时没有使用它)。我找到了一个简单的解决方案——只需在几周内删除第二个字段和组。我想有一个简单的方法,不改变初始数据表,只调整绘图的图层。