нарисовать диаграмму стека в г - PullRequest
0 голосов
/ 05 марта 2019

Я хочу нарисовать стековую диаграмму в R: Мой набор данных выглядит так: df:

df <- structure(list(id = c("A","B"),
                   x1 = c(10,30),
                   x2 = c(20,40),
                   x3 = c(70,30)), row.names = 1:2,
                   class = "data.frame")

    df<- melt(df, id.vars = "id")
library(ggplot2)
ggplot(data = df, aes(x = variable, y = value, fill =id)) + 
  geom_bar(stat = "identity") +
  xlab("\nCategory") +
  ylab("Percentage\n") +
  guides(fill = FALSE) +
  theme_bw()

Выход не тот, который я хочу,

Я хочу видеть id по оси x и x1, x2, x3 в столбце с накоплением.

1 Ответ

0 голосов
/ 05 марта 2019

ggplot's x всегда указывает ось X, fill переменную, по которой вы хотите классифицировать ваши данные.Таким образом, чтобы создать желаемый сюжет, код:

    library(reshape2) ## for melt()
    library(ggplot2)

    df<- melt(n_df, id.vars = "id")

    ggplot(data = n_df, aes(x = id, y = value, fill =variable)) + 
      geom_bar(stat = "identity") +
      xlab("\nCategory") +
      ylab("Percentage\n") +
      guides(fill = FALSE) +
      theme_bw() 

Output:

Если вы хотите, чтобы легенда появилась, вы должны guides(fill = TRUE):

Second Plot

...