我有以下数据显示白人与黑人在各个领域的一致性百分比。我想创建一个分组哑铃图,其中国家值和州值彼此相邻,以便于比较。
Domain = c("A", "B", "C", "D", "E", "F", "G",
"A", "B", "C", "D", "E", "F", "G", "A", "B", "C", "D", "E", "F",
"G", "A", "B", "C", "D", "E", "F", "G")
Area = c("State", "State",
"State", "State", "State", "State", "State", "National", "National",
"National", "National", "National", "National", "National", "State",
"State", "State", "State", "State", "State", "State", "National",
"National", "National", "National", "National", "National", "National"
race = c("White", "White", "White", "White", "White", "White",
"White", "White", "White", "White", "White", "White", "White",
"White", "Black", "Black", "Black", "Black", "Black", "Black",
"Black", "Black", "Black", "Black", "Black", "Black", "Black",
"Black")
pct_agreement = c(0.557610213756561, 0.735042750835419,
0.567375898361206, 0.633762538433075, 0.64091557264328, 0.750356614589691,
0.564539015293121, 0.651861846446991, 0.697574973106384, 0.653521358966827,
0.713940441608429, 0.680985689163208, 0.751584351062775, 0.642535984516144,
0.488484561443329, 0.581625580787659, 0.456939995288849, 0.580652594566345,
0.630399644374847, 0.711643815040588, 0.347775995731354, 0.627996683120728,
0.668737232685089, 0.610245823860168, 0.690373718738556, 0.705771028995514,
0.738830924034119, 0.550933301448822)
当我的代码如下时,我得到一个图表,其中所有点都很好地排列:
df <- data.frame(Domain, Area, race, pct_agreement)
ggplot(df) +
geom_point(aes(x=Domain, y=pct_agreement, color=Area),
position=position_dodge(width=1)) +
coord_flip()
但当我尝试根据受访者是黑人还是白人来制作不同的形状时,一切都突然看起来很奇怪。这是一个错误吗?有什么方法可以修复或解决它吗?
我也不确定如何在“哑铃”两端之间添加一条线——我尝试使用 geom_line(aes(group=Area)) 但这导致了all连接的哑铃。
ggplot(df) +
geom_point(aes(x=Domain, y=pct_agreement, color=Area, shape=race),
position=position_dodge(width=1)) +
coord_flip()
注意:我浏览了该网站上的很多帖子试图找到答案,许多人建议使用方面。这对我不起作用,因为我的老板希望将所有内容都显示在一张图表上。