R 在分组条形图的X轴上对变量的级别集进行排序
我用ggplot2创建了一个分组条形图。我将该表命名为“data3”,该表如下所示-R 在分组条形图的X轴上对变量的级别集进行排序,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我用ggplot2创建了一个分组条形图。我将该表命名为“data3”,该表如下所示- Menopausal_Status Depression_Status Percent Peri Mild 20.83333 Post Mild 68.75000 Pre Mild 10.41667 Peri
Menopausal_Status Depression_Status Percent
Peri Mild 20.83333
Post Mild 68.75000
Pre Mild 10.41667
Peri Moderate 23.46369
Post Moderate 15.08380
Pre Moderate 61.45251
Peri Moderately Severe 26.86567
Post Moderately Severe 26.86567
Pre Moderately Severe 46.26866
Peri Severe 28.12500
Post Severe 37.50000
Pre Severe 34.37500
编码如下所示-
library(ggplot2)
p1 = ggplot(data3)+ geom_bar (aes (x = Menopausal_Status,
y= Percent,
fill = Depression_Status),
stat = "identity",
position = position_dodge(0.8))
p1
这些编码产生了这张图
所以,我想在这张图的x轴上重新排列变量“绝经状态”的水平/因子,如下所示
“前期”、“中期”、“后期”
我尝试过scale_x_discrete()函数
p1 = ggplot(data3)+ geom_bar (aes (x = Menopausal_Status,
y= Percent,
fill = Depression_Status),
stat = "identity",
position = position_dodge(0.8))+
scale_x_discrete(limits = c("Pre", "Peri", "Post"))
p1
但这产生了这个带有警告信息的图表-
“警告消息:
删除了包含缺失值的4行(几何图形栏)。
我哪里做错了?你能建议一种更好的方法来重新排列分组条形图中变量的级别吗
dput(data3)
这是输出-
`structure(list(Menopausal_Status = c("Peri", "Post", "Pre ",
"Peri", "Post", "Pre ", "Peri", "Post", "Pre ", "Peri", "Post",
"Pre "), Depression_Status = structure(c(1L, 1L, 1L, 2L, 2L,
2L, 3L, 3L, 3L, 4L, 4L, 4L), .Label = c("Mild", "Moderate", "Moderately
Severe",
"Severe"), class = "factor"), Percent = c(20.8333333333333, 68.75,
10.4166666666667, 23.463687150838, 15.0837988826816, 61.4525139664804,
26.865671641791, 26.865671641791, 46.2686567164179, 28.125, 37.5,
34.375)), row.names = c(NA, -12L), class = "data.frame")`
你能做一些水平测试(数据3$更年期状态)看看这些水平是否正确吗?我想这可能有点奇怪column@StupidWolf实际上,同一个表生成了第一个图形。因此,我认为该表是可以的。它是一个2x2表,我使用“as.data.frame.matrix”将其转换为数据帧使用ggplot2生成图形的代码。是否介意执行dput(数据3)并将输出粘贴到帖子中?在“Pre”中有额外的空间。试试
scale\u x\u discrete(极限=c(“前”、“中”、“后”)
@dc37谢谢,亲爱的。它解决了这个问题。