Я создал график с 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)

enter image description here

0
Sarkans Satans 21 Янв 2021 в 01:09

1 ответ

Лучший ответ

Без данных я могу предположить, что столбец 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))
1
Sinh Nguyen 20 Янв 2021 в 23:22