Как полностью отобразить надпись «Inf» с помощью ggplot2? - PullRequest
0 голосов
/ 28 октября 2019

Когда я строю линию со значением бесконечности, используя пакет 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))

img

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Вы можете добавить + coord_cartesian(clip = "off"), чтобы показать часть, обрезанную за пределами области графика.

enter image description here

0 голосов
/ 29 октября 2019

Использование пакета 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)

enter image description here

Надеюсь, это поможет!

...