ggplot:绘图标题和绘图相互重叠

Posted

技术标签:

【中文标题】ggplot:绘图标题和绘图相互重叠【英文标题】:ggplot: plot title and plot overlap each other 【发布时间】:2016-02-26 11:36:54 【问题描述】:

我是 R 的新手,因此在使用 ggplot 绘图时遇到一些问题,因此需要帮助。

在上图中,如果我的任何条具有高值(在本例中为值为 447 的绿色条),则绘图和绘图标题会重叠。此处的值经过标准化/缩放,使得 y 轴值始终介于 0-100 之间,尽管标签可能指示不同的数字(这是实际发生次数,因为缩放是基于百分比完成的)。

我想知道如何避免情节与情节标题重叠,在所有情况下,条形高度都非常接近 100。

我使用的ggplot函数如下。

my_plot<-ggplot(data_frame,
           aes(x=as.factor(X_VAR),y=GROUP_VALUE,fill=GROUP_VAR)) +
  geom_bar(stat="identity",position="dodge")  +
  geom_text(aes(label = BAR_COUNT, y=GROUP_VALUE, ymax=GROUP_VALUE, vjust = -1), position=position_dodge(width=1), size = 4) + 
  theme(axis.text.y=element_blank(),axis.text.x=element_text(size=12),legend.position = "right",legend.title=element_blank()) + ylab("Y-axis label") + 
  scale_fill_discrete(breaks=c("GRP_PERCENTAGE", "NORMALIZED_COUNT"),
                      labels=c("Percentage", "Count of Jobs")) +
  ggtitle("Distribution based on Text Analysis 2nd Level Sub-Category") + 
  theme(plot.title = element_text(lineheight=1, face="bold"))

这里是 ggsave 命令,以防万一这会造成问题,它带有 dpi、高度和宽度值。

ggsave(my_plot,file=paste(paste(variable_name,"my_plot",sep="_"),".png",sep = ""),dpi=72, height=6.75,width=9)

谁能建议需要做些什么才能做到这一点?

非常感谢

【问题讨论】:

感谢@Jota 我尝试为 hjust 和 vjust 提供值。但情节仍然没有太大变化。 hjust = 1,vjust=2 【参考方案1】:

正如Axeman 建议的那样,ylim 很有用,请查看此处的文档:

http://docs.ggplot2.org/0.9.3/xylim.html

在您的代码中:

my_plot + ylim(0,110)

另外,我发现这个轴的介绍非常有用: http://www.cookbook-r.com/Graphs/Axes_(ggplot2)/

祝你好运!

【讨论】:

嗨,我刚刚尝试设置 ylim(0,110)。但在某些情况下,它与标题重叠。特别是当条形图接近 100 时。我相信另一个原因是 geom_text 中的 vjust 可能会导致这种情况。但是如果没有在 geom_text 中的 vjust,条形标签文本会出现在条形的旁边/顶部,这看起来并不吸引人。因此寻找更清洁的方法。我需要在我的办公环境之外重现数据以提供示例,因为该图目前包含一些机密数据,因此无法发布数据集。还有其他选项可以确保 ylim 不会覆盖标题吗? 再改ylim还会重叠吗? +ylim(0,150) f.ex?

以上是关于ggplot:绘图标题和绘图相互重叠的主要内容,如果未能解决你的问题,请参考以下文章

Facet_Wrap标题与ggplotly中的y轴重叠?

使用 ggsubplot 指定绘图顺序

如何避免熊猫直方图子图中的绘图标题和轴标题之间的重叠? [复制]

如何调整包含绘图的 div 以绘制尺寸,使其不与文档重叠

绘图区域中的图例重叠

放置 MATLAB 图例,使其不会在绘图上重叠