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:绘图标题和绘图相互重叠的主要内容,如果未能解决你的问题,请参考以下文章