R 如何在不影响结果的情况下更改杆位置?
我是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) 我不知道该怎么办。谁来帮帮我 由于您没有提供数据,我可以演示如何使用虚拟数据重新排列条
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