[英]ggplot2 dodged bars and legend not ordered
我有一个非常简单的问题。 我正在 R 中的 ggplot2 中制作一个简单的躲避条形图,并且我的度量在情节和图例中的顺序不同。 从示例图中可以看出,鲑鱼中的测量 A 在图表的底部,但在图例的顶部。 我希望它们在两个地方的订购方式相同。
有什么建议吗? 我试过调整填充度量的顺序,但没有任何区别。 这是R代码:
ggplot(out2, aes(x = Variable, y=est,fill=Measure)) +
geom_bar(position = "dodge", stat="identity",color="black")+
geom_errorbar(aes(x=Variable,ymin=lo,ymax=hi),width=.2,position=position_dodge(.9))+
theme_classic()+coord_flip()+ylab("Standardized Estimate")+xlab("Measure")
数据:
Variable Measure est lo hi
Var1 A -0.22046025 -0.242941124 -0.19797938
Var1 B -0.4416939 -0.464179242 -0.41920856
Var1 C -0.05870968 -0.079757151 -0.0376622
Var1 D -0.09956618 -0.121966337 -0.07716603
Var1 E -0.21761678 -0.237557365 -0.19767619
Var2 A 0.15310304 0.130995958 0.17521013
Var2 B 0.08317558 0.059667487 0.10668366
Var2 C 0.19167363 0.171662536 0.21168473
Var2 D 0.19607088 0.174750576 0.21739118
Var2 E 0.12307817 0.102282982 0.14387336
Var3 A 0.01874422 -0.007943041 0.04543148
Var3 B 0.09679525 0.068783593 0.12480691
Var3 C 0.17800168 0.153945969 0.20205739
Var3 D -0.06815006 -0.092771073 -0.04352905
Var3 E 0.10935194 0.092778676 0.1259252
Var4 A 0.02119417 -0.005383474 0.04777182
Var4 B 0.20175 0.174170789 0.22932921
Var4 C 0.28234648 0.258946192 0.30574677
Var4 D 0.27383735 0.24550973 0.30216497
Var4 E 0.12060643 0.095333034 0.14587983
Var5 A -0.40312318 -0.428041245 -0.37820512
Var5 B -0.62223812 -0.646148035 -0.5983282
Var5 C -0.24178985 -0.265545315 -0.21803439
Var5 D -0.25663925 -0.281690564 -0.23158794
Var5 E -0.2504907 -0.274898158 -0.22608324
Var6 A 0.08896879 0.059268463 0.11866912
Var6 B 0.12772646 0.099299213 0.15615371
Var6 C 0.10013601 0.075418108 0.12485392
Var6 D 0.02986901 0.006681256 0.05305677
Var6 E 0.12655356 0.107467398 0.14563971
Var7 A 0.36395987 0.340471818 0.38744791
Var7 B 0.59798475 0.575777017 0.62019248
Var7 C 0.30156148 0.279785839 0.32333712
Var7 D 0.3636511 0.338241065 0.38906113
Var7 E 0.29686526 0.273368812 0.3203617
Var8 A 0.05732388 0.032874273 0.08177348
Var8 B 0.16576558 0.140281883 0.19124928
Var8 C 0.05272789 0.030332088 0.07512368
Var8 D 0.10909782 0.077128721 0.14106691
Var8 E 0.12067134 0.096529477 0.14481321
干得好。 我使用 position_dodge2(reverse = TRUE),而不是 position_dodge。 我猜这是这样做的最少侵入性的方式。
library(tidyverse)
text1 <- "Variable Measure est lo hi
Var1 A -0.22046025 -0.242941124 -0.19797938
Var1 B -0.4416939 -0.464179242 -0.41920856
Var1 C -0.05870968 -0.079757151 -0.0376622
Var1 D -0.09956618 -0.121966337 -0.07716603
Var1 E -0.21761678 -0.237557365 -0.19767619
Var2 A 0.15310304 0.130995958 0.17521013
Var2 B 0.08317558 0.059667487 0.10668366
Var2 C 0.19167363 0.171662536 0.21168473
Var2 D 0.19607088 0.174750576 0.21739118
Var2 E 0.12307817 0.102282982 0.14387336
Var3 A 0.01874422 -0.007943041 0.04543148
Var3 B 0.09679525 0.068783593 0.12480691
Var3 C 0.17800168 0.153945969 0.20205739
Var3 D -0.06815006 -0.092771073 -0.04352905
Var3 E 0.10935194 0.092778676 0.1259252
Var4 A 0.02119417 -0.005383474 0.04777182
Var4 B 0.20175 0.174170789 0.22932921
Var4 C 0.28234648 0.258946192 0.30574677
Var4 D 0.27383735 0.24550973 0.30216497
Var4 E 0.12060643 0.095333034 0.14587983
Var5 A -0.40312318 -0.428041245 -0.37820512
Var5 B -0.62223812 -0.646148035 -0.5983282
Var5 C -0.24178985 -0.265545315 -0.21803439
Var5 D -0.25663925 -0.281690564 -0.23158794
Var5 E -0.2504907 -0.274898158 -0.22608324
Var6 A 0.08896879 0.059268463 0.11866912
Var6 B 0.12772646 0.099299213 0.15615371
Var6 C 0.10013601 0.075418108 0.12485392
Var6 D 0.02986901 0.006681256 0.05305677
Var6 E 0.12655356 0.107467398 0.14563971
Var7 A 0.36395987 0.340471818 0.38744791
Var7 B 0.59798475 0.575777017 0.62019248
Var7 C 0.30156148 0.279785839 0.32333712
Var7 D 0.3636511 0.338241065 0.38906113
Var7 E 0.29686526 0.273368812 0.3203617
Var8 A 0.05732388 0.032874273 0.08177348
Var8 B 0.16576558 0.140281883 0.19124928
Var8 C 0.05272789 0.030332088 0.07512368
Var8 D 0.10909782 0.077128721 0.14106691
Var8 E 0.12067134 0.096529477 0.14481321
"
out2 <- read.table(text = text1, header = T)
ggplot(out2, aes(x = Variable, y=est, fill=Measure)) +
geom_bar(position = position_dodge2(reverse = TRUE), stat="identity",color="black")+
geom_errorbar(aes(x=Variable,ymin=lo,ymax=hi), position = position_dodge2(width=1, padding = 1, rev = TRUE))+
theme_classic()+coord_flip()+ylab("Standardized Estimate")+xlab("Measure")
这会给你:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.