如何修复基本R条形图中丢失的标签

嗨,我试图绘制一个工作人员数量的小图,但是x轴上的某些标签丢失了。如何解决这个问题

> dput(dat)
structure(list(Name = c("John","Jacky","Jill","Sam","Arthur","Aaron","Jacob","Joseph","Martin","Alan","Albert","Clare","Frederick","Florence","David","George","Michael","Doughlas","Andrew","Brian"),Clinc = c("DMMTC","DMMTC","CKDMTC","Warfarin MTC","Respiratory MTC","QSC","Pain MTC","Pain MTC")),row.names = c(NA,-20L),class = c("tbl_df","tbl","data.frame"))

summary(dat)

head(dat)


counts <- table(dat$Clinc)
barplot(counts,main="Placements",xlab="number of staffs",)
doroyht 回答:如何修复基本R条形图中丢失的标签

Anandapadmanathan,这对绘图窗口的实际大小很敏感。如果将其扩展为更大的尺寸,则应该看到所有标签。有些可能由于重叠的文本框而被隐藏。例如,这是您的代码,但绘图窗口更大。

barplot

不幸的是,尽管我不知道为什么一个或多个名称会从您的地块中“丢失”,但您仍然可以随意添加标签。

首先,您是否知道barplot返回每个小节中心的X值?奇怪的是,它们不是整数:

bp <- barplot(counts,main="Placements",xlab="number of staffs")
bp
#      [,1]
# [1,]  0.7
# [2,]  1.9
# [3,]  3.1
# [4,]  4.3
# [5,]  5.5
# [6,]  6.7

我们可以使用它们来手动放置一些文本。

从过于狭窄的情节开始:

# left,unchanged
bp <- barplot(counts,xlab="number of staffs")

我们可以手动添加一些文本。为此,知道xpd=NA允许我们将文本(和点)放置在常规绘图窗口之外。同样,adj=是“ x对齐”和“ y对齐”的向量,其中0.5居中,在这种情况下,-4是“突降大约4个高度”。您需要玩这个游戏才能达到您想要的效果。 (有关xpd的帮助,请参见?par;有关adj的帮助,请参见?text。)

# middle,just for testing
bp <- barplot(counts,xlab="number of staffs")
text(bp,names(counts),xpd = NA,adj = c(0.5,4),col = "red")

最后,由于我们现在可以看到省略了第2和第5个标签,因此我们可以定位这些标签。

# right,fixed
bp <- barplot(counts,xlab="number of staffs")
text(bp[c(2,5)],names(counts)[c(2,col = "red")

three barplots side by side

完美吗?不,美丽吗?也许不是。但是,这使您可以重新获得丢失的东西。 (我个人认为,交替使用x标签的高度可能是一件好事,尤其是当其中一些标签的宽度超出所需宽度时。)

,

还有其他四种方法来处理未显示的标签:

  1. 减小标签文本:

    {global.myBoolean && <p>Show me if true</p>}
    
  2. 更改绘图窗口的大小:

    return (
     {global.myBoolean && (
      <p>Show me if true</p>
     )}
    )
    
  3. 通过增加左边距来使用水平条形图:

    barplot(counts,xlab="number of staffs",cex.names=.7)
    
  4. 增加底部边距并以一定角度绘制文本:

    dev.new(width=10,height=6)
    barplot(counts,xlab="number of staffs")
    
本文链接:https://www.f2er.com/3140473.html

大家都在问