Создайте диаграмму горизонта на R, используя ggplot2: показать процентное изменение - PullRequest
2 голосов
/ 26 октября 2019

Я новичок в этом, и я действительно зациклен на этом.

Я хотел бы создать горизонтальную диаграмму, которая показывает процентное изменение продаж для разных городов, используя ggplot2 и R. Кто-нибудь мне поможет? в подходе, который я могу использовать для создания диаграммы?

Данные, которые у меня есть, выглядят так. enter image description here

Это тип графика, который я хотел бы сделать. (источник: https://harmoniccode.blogspot.com/2017/11/friday-fun-li-horizon-charts.html) enter image description here

Заранее благодарен за любую помощь!

Редактировать: вот пример кода данных:

x <- data.frame(
  "town" =c('sad','sad','sad','sad','happy','happy','happy','happy'),
  "month"=c("2017-01","2017-02","2017-03","2017-04","2017-01","2017-02","2017-03","2017-04"),
  "median_sales" = c(336500,355000,375000,395000,359000,361500,36000,375000),
  "percentage_change" = c(NA,5.4977712,5.6338028,5.3333333,NA,0.6963788,-0.4149378,  4.1666667
))

x <-
  x %>%
  mutate(month = floor_date(as_date(as.yearmon(month)), "month"))

1 Ответ

3 голосов
/ 26 октября 2019

Было бы полезно привести пример, который приведет к разумному графику, и предоставить данные вашего примера в виде данных, а не изображения.

Если вы гуглите «график горизонта», первый ответ должен датьвам то, что вам нужно.

Вот простой пример, основанный на данных, которые вы предоставили:

library(latticeExtra)

sales.ts <- ts(matrix(sales$median_sales, ncol=2), names = c("sad", "happy"),
               start = c(2017, 1), frequency = 365)

horizonplot(sales.ts)

Я думаю, что это правильно представляет ваши результаты, но, опять же, трудно сказать, поскольку у вас нетт дан реалистичный набор данных.

ОБНОВЛЕНИЕ: на основе предоставленных данных, это ответ. Опять же, поскольку вы указали только один момент времени, горизонтальный график, вероятно, не то, что вам нужно. Они предназначены для построения временных рядов.

x.ts <- ts(matrix(x$median_sales, ncol=2), names = c("sad", "happy"),
                  start = c(2015, 1), frequency = 12)

horizonplot(x.ts)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...