R 如何在不影响结果的情况下更改杆位置?

R 如何在不影响结果的情况下更改杆位置?,r,ggplot2,position,bar-chart,R,Ggplot2,Position,Bar Chart,我是R新手,我试图改变条形图上条形图的位置,但我的结果也改变了。以下是图表: 当我使用代码时: 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) 我不知道该怎么办。谁来帮帮我 由于您没有提供数据,我可以演示如何使用虚拟数据重新排列条

我是R新手,我试图改变条形图上条形图的位置,但我的结果也改变了。以下是图表:

当我使用代码时:

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)

我不知道该怎么办。谁来帮帮我

由于您没有提供数据,我可以演示如何使用虚拟数据重新排列条形图。要对条形图进行排序,基本上需要对用作绘图中x轴的变量上的数据进行排序

vec = c(rep("a", 30), rep("b", 20), rep("c", 10))
df = as.data.frame(table(vec)) # Create dummy data frame
数据帧
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
以上代码的输出是-


我还并没有完成其余的格式化,但从你们的图表来看,你们很擅长。通过执行这些步骤,在对条形图重新排序时,数据不应更改。如果您可以共享您的数据,我可以更好地了解它是否解决了您的问题。

我们可以看看一些数据和您用来创建图表的代码吗?另外,我在第一张图表中看到了6个类别,在你的位置对象中只有5个类别。我现在知道问题出在哪里了。我的对象“位置”只有5个类别。这就是我的结果受到影响的原因。谢谢@RyanMorton!
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