r - 将 Geom_points ggrepel 标签与辅助轴对齐
问题描述
我的 geom_points ggrepel 标签未与辅助轴对齐。它正在获取主轴的数字。我该如何改变它?
BHAGWANPUR <- structure(list(STATE = c("UTTARAKHAND", "UTTARAKHAND", "UTTARAKHAND"
), DISTRICT = c("HARDWAR", "HARDWAR", "HARDWAR"), AC = c("BHAGWANPUR",
"BHAGWANPUR", "BHAGWANPUR"), PARTY = c("INC", "BJP", "BSP"),
VOTES = c(44882L, 42369L, 4069L), DELTA_VOTES = c(14835L,
31719L, -32759L), VOTE_PERCENTAGE = c(48.2, 45.5, 4.4), SWING = c(9.9,
31.9, -42.5), X.CHANGE = c(49.4, 297.8, -89), BASE_SHARE = c(38.2,
13.6, 4.4)), class = "data.frame", row.names = c(NA, -3L))
BHAGWANPUR <- BHAGWANPUR %>% mutate(mpg_type=ifelse(BHAGWANPUR$SWING>0,"ABOVE","BELOW"))
BHAGWANPUR$PARTY <- factor(BHAGWANPUR$PARTY,levels=BHAGWANPUR$PARTY)
BHAGWANPUR
draw <- ggplot(BHAGWANPUR, aes(x=PARTY, y=DELTA_VOTES, label=DELTA_VOTES)) +
geom_bar(stat='identity', width=.5,aes(fill=PARTY))+geom_text(aes(label=DELTA_VOTES,vjust="top"),position = position_stack(vjust = 0.5))+
scale_fill_manual(values=c("#00BFFF","#F98C1F","#22409A"))+labs(subtitle="2012 to 2017",
title= "Bhagwanpur,Uttarakhand") +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))
draw <- draw+geom_point(colour = c("#00BFFF","#F98C1F","#22409A"),data = BHAGWANPUR, aes(x=PARTY, y=(BASE_SHARE * 1000),group = 1))+geom_label_repel(
aes(PARTY, BASE_SHARE, label = BASE_SHARE),
fontface = 'bold', color = 'black',
box.padding = unit(0.35, "lines"),
point.padding = unit(0.5, "lines"),
segment.color = 'grey50'
) +
geom_line(data = BHAGWANPUR, aes(x=PARTY, y=BASE_SHARE * 1000,group = 1), stat="identity")+
scale_y_continuous(name = "Votes", sec.axis = sec_axis(~./2000, name = "Base Share",labels = function(x) paste0(x, "%")))
draw
解决方案
与上一个问题相同。1000 * BASE_SHARE
错过了使用geom_label_repel
draw <- ggplot(BHAGWANPUR, aes(x=PARTY, y=DELTA_VOTES, label=DELTA_VOTES)) +
geom_bar(stat='identity', width=.5,aes(fill=PARTY))+geom_text(aes(label=DELTA_VOTES,vjust="top"),position = position_stack(vjust = 0.5))+
scale_fill_manual(values=c("#00BFFF","#F98C1F","#22409A"))+labs(subtitle="2012 to 2017",
title= "Bhagwanpur,Uttarakhand") +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))
draw <- draw+geom_point(colour = c("#00BFFF","#F98C1F","#22409A"),data = BHAGWANPUR, aes(x=PARTY, y=(BASE_SHARE * 1000),group = 1))+geom_label_repel(
aes(PARTY, BASE_SHARE * 1000, label = BASE_SHARE),
fontface = 'bold', color = 'black',
box.padding = unit(0.35, "lines"),
point.padding = unit(0.5, "lines"),
segment.color = 'grey50'
) +
geom_line(data = BHAGWANPUR, aes(x=PARTY, y=BASE_SHARE * 1000,group = 1), stat="identity")+
scale_y_continuous(name = "Votes", sec.axis = sec_axis(~./2000, name = "Base Share",labels = function(x) paste0(x, "%")))
draw
推荐阅读
- python - 如何根据日期过滤csv文件中的行?
- html - 用 box-shadow 替换表单输入的轮廓是否违反任何 WCAG 准则?
- tcl - 没有全名的呼叫程序
- kubernetes - 自动向 OpenShift 中的服务帐户添加拉取机密
- debugging - 在 Visual Studio 2019 中以不同的解决方案启动多个项目
- powershell - Powershell 未正确解码 base64 命令
- pyspark - Py4JJavaError:调用 o8484.showString 时出错
- javascript - reactjs中的道具状态值
- mysql - 将 PostgreSQL 转换为 MySQL
- java - RecyclerView 在 Fragment 中不显示项目,但在 Activity 中有效