R 带有stat_binhex的对数刻度
我有两个分布,我想用对数刻度绘制两个轴:R 带有stat_binhex的对数刻度,r,ggplot2,logarithm,R,Ggplot2,Logarithm,我有两个分布,我想用对数刻度绘制两个轴: library(ggplot2) set.seed(99) data <- data.frame(vec1 = as.integer(rlnorm(10000, sdlog = 2)), vec2 = as.integer(rlnorm(10000, sdlog = 2))) 但不能使用stat\u binhex() 这将产生一个错误 Error in if (!missing(xbnds) &&am
library(ggplot2)
set.seed(99)
data <- data.frame(vec1 = as.integer(rlnorm(10000, sdlog = 2)),
vec2 = as.integer(rlnorm(10000, sdlog = 2)))
但不能使用stat\u binhex()
这将产生一个错误
Error in if (!missing(xbnds) && any(sign(xbnds - range(x)) == c(1, -1))) stop("'xbnds' must encompass range(x)") :
missing value where TRUE/FALSE needed
有可能吗?按照以下说明结束问题(@,如果您愿意,请随时循环使用我的答案)。代码如下
或者,您可以删除0
值
bar <- subset(data, vec1 != 0 & vec2 != 0)
ggplot(bar, aes(vec1, vec2)) + stat_binhex() + scale_x_log10() + scale_y_log10()
bar您的数据中有0个值,这会造成问题。如果您向vec1
和vec2
添加一些常量,您将看到缩放工作正常
Error in if (!missing(xbnds) && any(sign(xbnds - range(x)) == c(1, -1))) stop("'xbnds' must encompass range(x)") :
missing value where TRUE/FALSE needed
…
ggplot(data, aes(vec1+1, vec2+1)) + stat_binhex() + scale_x_log10() + scale_y_log10()
bar <- subset(data, vec1 != 0 & vec2 != 0)
ggplot(bar, aes(vec1, vec2)) + stat_binhex() + scale_x_log10() + scale_y_log10()