Rob*_*ace 38 plot text r ggplot2
使用geom_text标记散点图的外围点.根据定义,这些点往往靠近画布边缘:通常至少有一个单词与画布边缘重叠,使其无用.
显然,这可以通过以下情况手动解决+ xlim(c(1.5, 4.5))
:
# test
df <- data.frame(word = c("bicycle", "tricycle", "quadricycle"),
n.wheels = c(2,3,4),
utility = c(10,6,7))
ggplot(data=df, aes(x=n.wheels, y=utility, label=word)) + geom_text() + xlim(c(1.5, 4.5))
Run Code Online (Sandbox Code Playgroud)
但这并不理想
搜索这个问题没有找到解决方案,Hadley Wickham似乎满足于在ggplot2的帮助页面中将标签切成两半(我知道Hadley,他们只是一个例子;)
sco*_*coa 47
ggplot 2.0.0的推出了新的选择hjust
,并vjust
为geom_text()
可能与裁剪的帮助,尤其是"inward"
.我们可以这样做:
ggplot(data=df, aes(x=n.wheels, y=utility, label=word)) +
geom_text(vjust="inward",hjust="inward")
Run Code Online (Sandbox Code Playgroud)
Gre*_*gor 27
我认为这是一个良好的使用expand
在scale_continuous
:
ggplot(data=df, aes(x=n.wheels, y=utility, label=word)) + geom_text() +
scale_x_continuous(expand = c(.1, .1))
Run Code Online (Sandbox Code Playgroud)
它可以填充您的数据(乘法和加法)来计算比例限制.除非你有很长的话,否则从默认值中略微提升它可能就足够了.有关?expand_scale
详细信息和其他选项,请参阅参见,例如仅扩展轴的上限或下限.从底部的例子?expand_scale
可以看出,默认值是离散尺度的加性值0.6,连续尺度的乘法值为0.05.
Her*_*sas 16
你可以关闭剪裁.对于你的例子,它工作得很好.
p <- ggplot(data=df, aes(x=n.wheels, y=utility, label=word)) + geom_text()
gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name == "panel"] <- "off"
grid.draw(gt)
Run Code Online (Sandbox Code Playgroud)