Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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 停止ggplot2中的标签重叠_R_Ggplot2_Text_Bar Chart_Tidyverse - Fatal编程技术网

R 停止ggplot2中的标签重叠

R 停止ggplot2中的标签重叠,r,ggplot2,text,bar-chart,tidyverse,R,Ggplot2,Text,Bar Chart,Tidyverse,我的数据如下: df <- structure(list(Reportable = c("Non-Reportable Injury", "Reportable Injury", "Non-Reportable Injury", "Reportable Injury", "Non-Reportable Injury", "Reportable Injury", NA,

我的数据如下:

df <- structure(list(Reportable = c("Non-Reportable Injury", "Reportable Injury", 
"Non-Reportable Injury", "Reportable Injury", "Non-Reportable Injury", 
"Reportable Injury", NA, "Non-Reportable Injury", "Reportable Injury", 
"Non-Reportable Injury", "Reportable Injury", "Non-Reportable Injury", 
"Reportable Injury", "Non-Reportable Injury", "Reportable Injury", 
"Non-Reportable Injury", "Reportable Injury", "Non-Reportable Injury", 
"Reportable Injury", "Non-Reportable Injury", "Reportable Injury", 
"Non-Reportable Injury", "Reportable Injury", "Non-Reportable Injury", 
"Reportable Injury"), Event_Description = c(NA, NA, "OVEREXERTION", 
"OVEREXERTION", "SLIPPED, FELL, STUMBLED, OTHER", "SLIPPED, FELL, STUMBLED, OTHER", 
"SLIPPED, FELL, STUMBLED, OTHER", "STRUCK BY OBJECT", "STRUCK BY OBJECT", 
"STRUCK AGAINST OBJECT", "STRUCK AGAINST OBJECT", "SLIPPED, FELL, STUMBLED, ETC. DUE TO CLIMATIC CONDITION (RAIN, SNOW, ICE, E", 
"SLIPPED, FELL, STUMBLED, ETC. DUE TO CLIMATIC CONDITION (RAIN, SNOW, ICE, E", 
"CAUGHT, CRUSHED, PINCHED, OTHER.", "CAUGHT, CRUSHED, PINCHED, OTHER.", 
"SLIPPED, FELL, STUMBLED, ETC. DUE TO OBJECT, E.G.,BALLAST, SPIKE, MATERIAL,", 
"SLIPPED, FELL, STUMBLED, ETC. DUE TO OBJECT, E.G.,BALLAST, SPIKE, MATERIAL,", 
"ASSAULTED BY OTHER", "ASSAULTED BY OTHER", "LOST BALANCE", "LOST BALANCE", 
"STRUCK BY FALLING OBJECT", "STRUCK BY FALLING OBJECT", "SLIPPED, FELL, STUMBLED, ETC. DUE TO IRREGULAR SURFACE, E.G., DEPRESSION, S", 
"SLIPPED, FELL, STUMBLED, ETC. DUE TO IRREGULAR SURFACE, E.G., DEPRESSION, S"
), count = c(238L, 33L, 62L, 202L, 33L, 108L, 1L, 36L, 85L, 37L, 
48L, 22L, 55L, 21L, 52L, 14L, 41L, 9L, 34L, 7L, 32L, 13L, 25L, 
8L, 27L), pct = c("88%", "12%", "23%", "77%", "23%", "76%", "1%", 
"30%", "70%", "44%", "56%", "29%", "71%", "29%", "71%", "25%", 
"75%", "21%", "79%", "18%", "82%", "34%", "66%", "23%", "77%"
), total = c("238 (88%)", "33 (12%)", "62 (23%)", "202 (77%)", 
"33 (23%)", "108 (76%)", "1 (1%)", "36 (30%)", "85 (70%)", "37 (44%)", 
"48 (56%)", "22 (29%)", "55 (71%)", "21 (29%)", "52 (71%)", "14 (25%)", 
"41 (75%)", "9 (21%)", "34 (79%)", "7 (18%)", "32 (82%)", "13 (34%)", 
"25 (66%)", "8 (23%)", "27 (77%)")), row.names = c(NA, -25L), class = c("tbl_df", 
"tbl", "data.frame"))

正如你可以从上面的图中看到的那样,这些词相互作用,在很多地方我们看到它们之间有百分比的重叠

因为这是降价完成的,所以我不能简单地把它拖得更大(

由于要打印的点数、固定的打印大小和长x轴类别文本,这里没有“魔弹”。您必须在某个地方妥协

通过交换换行符的空间,可以相对容易地修复条形图上方的百分比标签,但是x轴标签太长,即使对于新的
guide\u axis
函数来说,也无法提供一个好的结果。我认为,总的来说,您只需要延长
stringr::wrap
以允许所有标签最多填充三个li不,这样可以避免冲突:

库(ggplot2)
图书馆(主题)
图书馆(stringr)
事件计数%>%
突变(总数=gsub(“\\(”,“\n\\(”,总数))%>%
ggplot(不良事件(填充=可报告,y=计数,x=因子(事件描述),标签=总数))+
几何坐标(位置=“道奇”)+
不良事件(str_wrap(as.factor(Event_Description)),30),计数)+
实验室(x=“”,y=“受伤人数”,填写=”)+
lims(y=c(0260))+
几何图形文字(位置=位置减淡(宽度=.9),矢量=-0.5,大小=3)+
标题(“标题”)+
刻度填充手册(数值=c(“达科朗格”、“矢车菊蓝”))+
刻度x离散(导轨=导轨轴(角度=90))

geom_text()
中检查重叠=T
如果不起作用,鸭子实际上移除了我需要的一些标签。此外,没有在轴上取消重叠我的条形标签。这是否回答了您的问题?为什么不从
ggrepel
包中使用
geom_label_repel()
library(ggplot2)
library(ggthemes)
library(stringr)

ggplot(event_counts, aes(fill=Reportable, y=count, x=as.factor(Event_Description), label = total)) +
  geom_bar(position="dodge", stat="identity")+
  aes(stringr::str_wrap(as.factor(Event_Description), 15), count) +
  labs(x = "", y = "Injury Count", fill = "")+
  geom_text(position = position_dodge(width = .9),     #move to center of bars
            vjust = -0.5,     #nudge above top of bar
            size = 3) +
  ggtitle("Title")+
  scale_fill_manual(values = c("darkorange", "cornflowerblue") ) +
  theme_hc() +
  theme(axis.text.x=element_text(angle = 90, vjust = 0.5))