【问题标题】:Annotation logticks along ggplot x axis not having uniform gaps沿ggplot x轴的注释logticks没有均匀的间隙
【发布时间】:2021-06-07 09:59:11
【问题描述】:

我创建了一个如下的 R 数据框

 A<-data.frame("Col1"= c(21.5 ,22.5 ,15.5, 20.5 ,17.5 ,14.5 ,23.5, 11.5, 16.5, 25.5 ,18.5, 24.5 ,10.5 , 9.5, 19.5, 26.5, 13.5, 12.5 ,27.5,  4.5 , 5.5,  8.5,  6.5,  7.5))
 A$Col2=c(0.619219548, 0.723265668,0.122833055, 0.536849680, 0.257225692 ,0.081648474, 0.794797325 ,0.023125359, 0.194364553, 0.909681117, 0.343930779, 0.857658382, 0.018791029  ,0.014457257,   0.467485576 ,0.950865217, 0.062140165, 0.040464671, 0.989875246,    0.001502443,0.003637989 ,0.012290763, 0.005796326, 0.007959621)

我使用 ggplot2 包在对数刻度上创建了以下图

library(scales)
library(ggplot2)

chart_1<-ggplot(A, aes(x=Col1, y=Col2)) +   geom_point()+   geom_smooth(method = "lm")+  
scale_x_log10(minor_breaks = seq(0,max(A$Col1)*10 , 0.1), breaks = pretty_breaks())+  
scale_y_log10(minor_breaks = seq(0,100,0.1))+ annotation_logticks(sides = "lb", outside = 
FALSE,short = unit(1,"mm"), mid = unit(3,"mm"),long = unit(6,"mm")) +  theme( panel.grid.major 
= element_line(colour = "red", size = 0.5), panel.grid.minor= element_line(colour = "green", 
size = 0.2))

在此我能够生成一个 Y 轴,在 2 个主要网格线之间具有统一的 9 个注释 logticks。即在 0.001 - 0.01, 0.01 - 0.1 ,0.1 - 1 之间,轴均分为 10 个分区。我希望沿 x 轴动态地进行相同的操作。我无法做到同样的事情。我请求有人在这方面指导我。非常感谢提前

【问题讨论】:

    标签: r ggplot2 scale


    【解决方案1】:

    我相信您的代码运行良好。 annotation_logticks 将在每个 log10 默认比例值之间写入 10 个标记。 这样,您在 0.01 和 0.1 之间有 10 个刻度,在 0.1 和 1 之间有 10 个刻度,在 1 和 10 之间有 10 个刻度(您可以在 x 轴上看到 5、6、7、8、9 和 10 上的标记;和10 和 100 之间的 10 个刻度线 -> 20,20,40...100。您可以在 x 轴上看到 20 和 30 上的刻度线。

    【讨论】:

    • 我进行了更改,现在可以看到日志。 chart_21
    • 沿x轴的网格线受此影响
    猜你喜欢
    • 1970-01-01
    • 2020-08-11
    • 2018-01-23
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    相关资源
    最近更新 更多