我有两个数据框:
df1 <- data.frame(runif(100,0,0.02), 1:100)
colnames(df1) <- c("a","b")
df2 <- data.frame(runif(100,0,0.3), 1:100)
colnames(df2) <- c("a","b")
我需要并排两个散点图(每个数据框一个),y轴上的对数-对数刻度看起来完全像这样(外部yticks,所有标签之间的次要y滴答声等),但限于1(不是10):
我尝试过(1个数据帧的散点图):
ggplot(df1, aes(x=factor(b), y=a)) +
geom_point() +
scale_y_continuous(trans = log10_trans(),
breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x))) +
annotation_logticks()
但是我仍然没有得到想要的东西
答案 0 :(得分:0)
添加limits=c(10^-4,1)
并更改labels=comma
即可完成工作!
最终代码:
ggplot(df1, aes(x=factor(b), y=a)) +
geom_point() +
scale_y_continuous(trans = log10_trans(),
breaks = comma,
labels = trans_format("log10", math_format(10^.x)),
limits=c(10^-4,1)) +
annotation_logticks()
此外,提示如何在comma
函数中仅显示有效数字(即1代替1.0000,或0.1代替0.1000)?谢谢