Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在分组条形图的X轴上对变量的级别集进行排序_R_Ggplot2_Bar Chart - Fatal编程技术网

R 在分组条形图的X轴上对变量的级别集进行排序

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

我用ggplot2创建了一个分组条形图。我将该表命名为“data3”,该表如下所示-

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谢谢,亲爱的。它解决了这个问题。