R 如何使用对数刻度在geom_箱线图中包含-inf值?
我认为ggplot在处理日志级别的-inf时是不一致的。下面是显示类似信息的两个图。在第一种情况下,我使用方框图以对数比例显示示例数据集的第25、50和75个百分位。如您所见,它删除了0(或对数刻度上的-inf值),并从剩余的数据点创建方框图 在第二个例子中,我预先计算了第25、50和75个百分位,然后使用geom_point用对数标度绘制了类似的图。在这种情况下,零值仅绘制在轴的底部,而不是删除。我认为这种行为更好。有没有一种方法可以在不删除-inf值的情况下绘制方框图 非常感谢R 如何使用对数刻度在geom_箱线图中包含-inf值?,r,ggplot2,R,Ggplot2,我认为ggplot在处理日志级别的-inf时是不一致的。下面是显示类似信息的两个图。在第一种情况下,我使用方框图以对数比例显示示例数据集的第25、50和75个百分位。如您所见,它删除了0(或对数刻度上的-inf值),并从剩余的数据点创建方框图 在第二个例子中,我预先计算了第25、50和75个百分位,然后使用geom_point用对数标度绘制了类似的图。在这种情况下,零值仅绘制在轴的底部,而不是删除。我认为这种行为更好。有没有一种方法可以在不删除-inf值的情况下绘制方框图 非常感谢 librar
library(tidyverse)
# create dataset
Test_Data <- data.frame("Values" = seq(0,10000,1))
Test_Data$Values[Test_Data$Values%%3==0] <- 0
Test_Data$Groups[Test_Data$Values%%2==0] <- 'A'
Test_Data$Groups[Test_Data$Values%%2!=0] <- 'B'
Test_Data$Values <- Test_Data$Values/10000
# plot boxplot
ggplot(data = Test_Data, aes(x= Groups, y = Values)) +
geom_boxplot()+
scale_y_continuous(trans='log10', limits = c(1e-5, 1e1)) +
annotation_logticks(sides = "l")
# Create dataset with quantile measures
Test_Data_Processed <- Test_Data %>%
select_all() %>%
group_by(Groups) %>%
summarise(Num = n(),
Median = median(Values),
Percnt_25 = quantile(Values,.25),
Percnt_75 = quantile(Values, .75)) %>%
gather(Measure, Value, Median:Percnt_75)
# plot with geom_point
ggplot(data = Test_Data_Processed, aes(x= Groups, y = Value, shape = Measure, color = Groups)) +
geom_point(size = 4) +
scale_y_continuous(trans='log10', limits = c(1e-5, 1e1)) +
annotation_logticks(sides = "l")
库(tidyverse)
#创建数据集
测试数据