R 在ggplot2 scale_y_log10()中,当没有负值时,变换似乎包括负值。发生了什么事?

R 在ggplot2 scale_y_log10()中,当没有负值时,变换似乎包括负值。发生了什么事?,r,ggplot2,R,Ggplot2,我正在绘制一列序列长度,以比较多个数据集之间的长度分布。没有负长度,也没有零长度。我正在使用以下代码: ggk19 <- ggplot(all_frame, aes(x=length, fill=name, title="K-19")) + geom_histogram(data=k19_frame, alpha=0.4, binwidth=0.02, fill='red',color='black') + scale_x_log10() + geom_hline(yinterc

我正在绘制一列序列长度,以比较多个数据集之间的长度分布。没有负长度,也没有零长度。我正在使用以下代码:

ggk19 <- ggplot(all_frame, aes(x=length, fill=name, title="K-19")) + 
  geom_histogram(data=k19_frame, alpha=0.4, binwidth=0.02, fill='red',color='black') + scale_x_log10() +
  geom_hline(yintercept=1000, color='blue', size=1, alpha=0.2) +
  geom_vline(xintercept=5000, color='green', size=1, alpha=0.2)

但是,当我使用scale_y_log10()时,我得到了一个看起来很怪的图形,它似乎是负值,还有一个额外的警告:

ggk19 <- ggplot(all_frames, aes(x=length, fill=name, title="K-19")) + 
  geom_histogram(data=k19_frame, alpha=0.4, binwidth=0.02, fill='red',color='black') + scale_x_log10() +
  geom_hline(yintercept=1000, color='blue', size=1, alpha=0.2) +
  geom_vline(xintercept=5000, color='green', size=1, alpha=0.2) +
  theme_gray(base_size = 14, base_family = "") + scale_y_log10()

Warning messages:
1: Stacking not well defined when ymin != 0 
2: position_stack requires constant width: output may be incorrect

ggk19您声称您的原始数据都不是零,但问题是在装箱后,您有一个高度为零的箱子。所以你的一些垃圾箱可能是空的。从视觉上看,这似乎是合理的。小于1的值的对数将为负值。。什么是范围(长度)
,正如joran和@Legazelt所指出的:几乎可以肯定,这些箱子的值毫无意义,x值是一个原始计数,因此最小的数字是1-非常大的值可能每个箱子只有1个。左边的交错是什么?你声称你的原始数据都不是零,但问题是在装箱后,你有一个高度为零的箱子。所以你的一些垃圾箱可能是空的。从视觉上看,这似乎是合理的。小于1的值的对数将为负值。。什么是范围(长度),正如joran和@Legazelt所指出的:几乎可以肯定,这些箱子的值毫无意义,x值是一个原始计数,因此最小的数字是1-非常大的值可能每个箱子只有1个。左边的摇摇晃晃怎么样?
ggk19 <- ggplot(all_frames, aes(x=length, fill=name, title="K-19")) + 
  geom_histogram(data=k19_frame, alpha=0.4, binwidth=0.02, fill='red',color='black') + scale_x_log10() +
  geom_hline(yintercept=1000, color='blue', size=1, alpha=0.2) +
  geom_vline(xintercept=5000, color='green', size=1, alpha=0.2) +
  theme_gray(base_size = 14, base_family = "") + scale_y_log10()

Warning messages:
1: Stacking not well defined when ymin != 0 
2: position_stack requires constant width: output may be incorrect
testplot <- ggplot(all_lengths_frame, aes(x=length, fill=name)) + 
    geom_histogram(data=subset(all_lengths_frame,name=="K-55"), alpha=0.3, binwidth=0.03) + scale_x_log10() + scale_y_log10() +
    geom_histogram(data=subset(all_lengths_frame,name=="K-25"), alpha=0.3, binwidth=0.03) +
    geom_histogram(data=subset(all_lengths_frame,name=="K-29"), alpha=0.3, binwidth=0.03) +
    geom_histogram(data=subset(all_lengths_frame,name=="K-35"), alpha=0.3, binwidth=0.03)