R ggplot标签在非常小的值上被截断
我有一个通过循环生成的图,所以解决方案必须是动态的,而不是一次性的 基本上一切都很好,直到有一个数据集具有极端性。在这种情况下,一种几何图形,其中前两条为~16k和~6k,第三条仅为2。因为它仅仅高于0,所以数字“2”被截断。作为一个动态生成的图形,我不能使用位置将其移动到条形图上方,否则较高的数字会被截断。R ggplot标签在非常小的值上被截断,r,ggplot2,R,Ggplot2,我有一个通过循环生成的图,所以解决方案必须是动态的,而不是一次性的 基本上一切都很好,直到有一个数据集具有极端性。在这种情况下,一种几何图形,其中前两条为~16k和~6k,第三条仅为2。因为它仅仅高于0,所以数字“2”被截断。作为一个动态生成的图形,我不能使用位置将其移动到条形图上方,否则较高的数字会被截断。 任何帮助都很好:)这里有两种方法 如果标签的y值太低,请将其移动。在这里,pmax(1000,Freq)将文本放置在较大的Freq或1000值处,在文本位置上放置一个下限 代码: 添加
任何帮助都很好:)这里有两种方法
pmax(1000,Freq)
将文本放置在较大的Freq或1000值处,在文本位置上放置一个下限+coord_cartesian(clip=“off”)
,以便打印区域外的文本和打印元素不会被剪裁掉。如果要防止值与轴标签重叠,还可以使用vjust=0
移动垂直对齐gndr_cnt_tbl = data.frame(
Var1 = c("Female", "Male", "Other"),
Freq = c(10000, 5000, 5)
)
太好了,谢谢!另外,感谢您添加这两个选项!
ggplot(gndr_cnt_tbl, aes(Var1, Freq, fill=Var1)) +
geom_col() +
geom_text(aes(label=Freq, y = pmax(1000, Freq)), # HERE
position=position_stack(0.5), size = 5) +
theme(legend.position = "none", axis.text=element_text(size=15),
axis.title=element_text(size=12))+ggtitle("Gender Breakdown")+
theme(plot.title = element_text(size=15))+xlab("Gender")+
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
gndr_cnt_tbl = data.frame(
Var1 = c("Female", "Male", "Other"),
Freq = c(10000, 5000, 5)
)