수직 축에 로그 스케일을 사용하는 ggplot
플롯에 수직선을 추가하는 방법은 무엇입니까? 예를 들어로그 스케일을 사용할 때 수직선을 추가하는 방법은 무엇입니까?
,
ggplot(data.frame(x=1:2, y=c(10,20)), aes(x,y)) +
geom_line() +
geom_vline(xintercept = 1.5)
작품은 예상대로. 수직축을 로그 스케일로 변환하면 :
ggplot(data.frame(x=1:2, y=c(10,20)), aes(x,y)) +
geom_line() +
geom_vline(xintercept = 1.5) +
coord_trans(y = 'log')
수직선이 사라집니다.
ggplot(data.frame(x=1:2, y=c(1,20)), aes(x,y)) + # y[1] is now different
geom_line() +
geom_vline(xintercept = 1.5) +
coord_trans(y = 'log')
다음 수직선은 아직 행방 불명입니다 만, 경고 메시지가 발행됩니다 :
Warning messages:
1: In self$trans$y$transform(y) : NaNs produced
2: In trans$transform(value) : NaNs produced
그래서 누락 된 선이 발생하고있을 가능성을 아마 하나는 약간의 데이터를 변경하는 경우 것이 관련이 0 (-Inf 및 경고 없음) 또는 음수 (NaN 및 경고)의 로그를 가져 오려고합니다.
(sessionInfo()
이 R version 3.3.1 (2016-06-21)
및 ggplot2_2.2.0
수 있습니다.)
([geom_h/vline 불완전 또는 무 coord_trans() 아니 라인] https://github.com/tidyverse/ggplot2/issues/895) – Henrik
[오랫동안 알려진 문제입니다] (https://groups.google.com/forum/#!topic/ggplot2/FGbhwyfkc74). – Axeman