我是R的新手,我试图改变条形图上条形图的位置,但我的结果也发生了变化。以下是图表:Chart of age
当我使用代码时:
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)
这是我的结果: Chart of age 2
和消息:
Warning messages:
1: Removed 86 rows containing non-finite values (stat_count).
2: Removed 86 rows containing non-finite values (stat_count).
我不知道该如何处理。有人帮帮我!
答案 0 :(得分:0)
由于您尚未提供数据,我可以展示如何使用虚拟数据重新排列条形图。要对条形图进行排序,基本上您需要对图中用作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
现在,我想按顺序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
上述代码的输出是 -
我还没有完成剩余的格式化,但是从你的图表来看,你很擅长。通过执行这些步骤,重新排序条形图时不应更改数据。如果您可以共享数据,我可以更好地了解它是否能解决您的问题。