如何使用ggplot2完整显示"Inf"标签?
How to display the "Inf" label completly using ggplot2?
当我使用 ggplot2 包绘制一条具有无穷大值的线时,即使我使用了很大的 "nudge_y" 参数,它的标签也无法完全显示。一个手动文本可以得到结果,但它不是我的答案。
如何完整显示?
x=seq(1,3,1)
y=c(1/3,Inf,3/3)
dt=data.frame(x=x,y=y,z=round(y,2))
ggplot(dt)+geom_line(aes(x=x,y=y))+
geom_text(aes(x=x,y=y,label=z))
您可以添加+ coord_cartesian(clip = "off")
以显示超出绘图区域的部分。
使用ggrepel
包也可以达到你的目的。
library(tidyverse)
library(ggrepel)
x = seq(1,3,1)
y = c(1/3,Inf,3/3)
dt = data.frame(x=x,y=y,z=round(y,2))
ggplot(dt, aes(x=x,y=y)) +
geom_line()+
geom_label_repel(aes(label=z), nudge_x = .05)
希望对您有所帮助!
当我使用 ggplot2 包绘制一条具有无穷大值的线时,即使我使用了很大的 "nudge_y" 参数,它的标签也无法完全显示。一个手动文本可以得到结果,但它不是我的答案。 如何完整显示?
x=seq(1,3,1)
y=c(1/3,Inf,3/3)
dt=data.frame(x=x,y=y,z=round(y,2))
ggplot(dt)+geom_line(aes(x=x,y=y))+
geom_text(aes(x=x,y=y,label=z))
您可以添加+ coord_cartesian(clip = "off")
以显示超出绘图区域的部分。
使用ggrepel
包也可以达到你的目的。
library(tidyverse)
library(ggrepel)
x = seq(1,3,1)
y = c(1/3,Inf,3/3)
dt = data.frame(x=x,y=y,z=round(y,2))
ggplot(dt, aes(x=x,y=y)) +
geom_line()+
geom_label_repel(aes(label=z), nudge_x = .05)
希望对您有所帮助!