r - 数据标签相互重叠
问题描述
我使用自定义面板功能(在此处找到)在图表上显示数据标签。
require(HH) # also loads: lattice, grid, latticeExtra
# custom panel function
myPanelFunc <- function(...){
panel.likert(...)
vals <- list(...)
DF <- data.frame(x=vals$x, y=vals$y, groups=vals$groups)
### some convoluted calculations here...
grps <- as.character(DF$groups)
for(i in 1:length(origNames)){
grps <- sub(paste0('^',origNames[i]),i,grps)
}
DF <- DF[order(DF$y,grps),]
DF$correctX <- ave(DF$x,DF$y,FUN=function(x){
x[x < 0] <- rev(cumsum(rev(x[x < 0]))) - x[x < 0]/2
x[x > 0] <- cumsum(x[x > 0]) - x[x > 0]/2
return(x)
})
subs <- sub(' Positive$','',DF$groups)
collapse <- subs[-1] == subs[-length(subs)] & DF$y[-1] == DF$y[-length(DF$y)]
DF$abs <- abs(DF$x)
DF$abs[c(collapse,FALSE)] <- DF$abs[c(collapse,FALSE)] + DF$abs[c(FALSE,collapse)]
DF$correctX[c(collapse,FALSE)] <- 0
DF <- DF[c(TRUE,!collapse),]
DF$perc <- ave(DF$abs,DF$y,FUN=function(x){x/sum(x) * 100})
###
panel.text(x=DF$correctX, y=DF$y, label=paste0(round(DF$perc,1),'%'), cex=0.7)
}
data(ProfChal)
origNames = colnames(ProfChal) # required for myPanelFunc
likert(x=Question ~ . , data=ProfChal[ProfChal$Subtable=="Employment sector",]
,main='Is your job professionally challenging?' # title
,as.percent=TRUE
,panel=myPanelFunc
)
但是,在结果图中,我看到一些标签位于另一个之上。为什么这种情况只发生在一些标签上,而不是所有标签上?
解决方案
不确定我是否正确,因为我看不到数据,但看起来第一行(学术(非学生))有 0 回答强烈不同意,第 4 行(私人顾问/个体经营者)有 0 回答强烈不同意或不同意,这将可能是问题的原因。我认为它的解决方案可能是如果 0 已回答选项删除标签。
推荐阅读
- docker - Docker:用 docker-compose 中的秘密替换文件内容
- java - 如何仅使用 java 代码以编程方式添加任何视图?
- javascript - React-Native 应用程序中来自 Babel 的未知选项错误
- html - 在 Chrome 的标签列表之间添加了一个额外的标签
- swift - 从日历中获取年份的日文名称
- uiscrollview - 滚动视图不可见 swiftui
- json - Swagger UI 从 application/x-www-form-urlencoded 到 Appluication/json
- r - 无法纠正问题,坏包处于“保持原样”模式
- c - 是否有一个 Arduino 库可以接收 DD/MM/YYYY 日期并告诉我它是星期几?
- javascript - 尝试解析字符串化的 quill.js quill 时出现 Javascript JSON.parse() 错误