R语言ggplot绘制直方图x轴10排在1后顺序异常怎么解决
ggplot x轴标签顺序异常解决方法
异常原因
x轴标签顺序异常是因为映射到x轴的Q32_1变量被识别为字符型或无序因子型,ggplot默认采用字符字典序排列轴标签,"10"的首字符为"1",因此排在"1"之后、"2"之前。
方法1:转换为数值型变量
如果Q32_1本身代表数值含义(如评分、数值计数等),直接将其转为数值型即可让x轴按数值大小自然排序:
mydata %>% ggplot(aes(as.numeric(Q32_1)))+ geom_bar(binwidth = 1, fill = "lightblue", col = "black") + labs(x= "my variable", y= "Frequency") + ggtitle("")
你也可以提前在数据框中完成类型转换,避免后续多次重复操作:
mydata <- mydata %>% mutate(Q32_1 = as.numeric(Q32_1))
方法2:指定因子水平顺序
如果Q32_1是分类变量,没有连续数值含义,你可以将其转为有序因子,手动指定标签排序规则:
mydata %>% # 按1到10的顺序指定因子水平 mutate(Q32_1 = factor(Q32_1, levels = as.character(1:10))) %>% ggplot(aes(Q32_1))+ geom_bar(binwidth = 1, fill = "lightblue", col = "black") + labs(x= "my variable", y= "Frequency") + ggtitle("")
内容的提问来源于stack exchange,提问作者Santiago99
相关产品推荐
相关产品推荐

