当前位置:  开发笔记 > 编程语言 > 正文

如何在使用对数刻度时添加垂直线?

如何解决《如何在使用对数刻度时添加垂直线?》经验,为你挑选了0个好方法。

如何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.)

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有