Как изменить положение бара, не влияя на результаты? - PullRequest
0 голосов
/ 08 июня 2018

Я новичок в R и пытаюсь изменить положение бара на гистограмме, но мои результаты тоже изменились.Вот диаграмма: Диаграмма возраста

enter image description here

, когда я использую код:

positions <- c("Moins de 18 ans","18 a 22 ans", "23 a 27 ans", "33 a 37 ans","38 ans et plus")
p + theme_classic() + scale_x_discrete(limits = positions)

Вот результаты, которые у меня есть: Диаграмма возраста 2

enter image description here

и сообщение:

    Warning messages:
1: Removed 86 rows containing non-finite values (stat_count). 
2: Removed 86 rows containing non-finite values (stat_count). 

Я не знаю, что с этим делать.Кто-нибудь, помогите мне, пожалуйста!

1 Ответ

0 голосов
/ 08 июня 2018

Поскольку вы не предоставили данные, я могу показать, как переставить столбцы, используя фиктивные данные.Для сортировки гистограммы, по сути, вам необходимо отсортировать данные по переменным, которые вы используете в качестве оси X на графике.

vec = c(rep("a", 30), rep("b", 20), rep("c", 10))
df = as.data.frame(table(vec)) # Create dummy data frame

Dataframe df выглядит так -

  vec Freq
1   a   30
2   b   20
3   c   10

сюжет будет -

df %>% 
        ggplot(aes(x = vec, y = Freq)) +
        geom_bar(stat = "identity") # default plot

enter image description here

Теперь я хочу бары в порядке b, a, c.Все, что мне нужно сделать, это отсортировать мой фрейм данных в том же порядке -

df$vec = factor(df$vec, levels = c("b", "a", "c")) # assign levels in order you want to see the bar-plot
df = df[order(df$vec),] # sort dataframe on your x-variable

df %>% 
        ggplot(aes(x = vec, y = Freq)) +
        geom_bar(stat = "identity") # barplot will be sorted on levels of factor now

Вывод приведенного выше кода - -

enter image description here

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

...