Как получить равные промежутки между неровными разрывами в ggplot - PullRequest
0 голосов
/ 07 августа 2020

Мой сюжет:

Был создан с помощью этого кода:

x <- data.frame("col1"=c(7.2,4.3,4.1,3.1,
                      1.6,1,0.8,0.4,0.5,
                      0.4,0.3,0.2,0.04,0.1,0.1),
                    "col2"=c(3.9,2.4,2.0,4.8,1.3,
                          1.0,1.1,0.8,0.6,0.9,1.1,
                          0.9,0.5,0.7,0.7))

p <- ggplot(x, aes(x=col1,y=col2)) + geom_point()
p <- p + scale_y_continuous(breaks = c(0.01,.1,1,10),limits = c(0,10))
p <- p + scale_x_continuous(breaks = c(0.01,.1,1,10),limits = c(0,10))

Я пытаюсь добиться равномерного интервала между 0,01, 0,1, 1 и 10, чтобы было легче увидеть разницу между меньшими значениями. Единственная мысль, которая у меня возникла, заключалась в том, чтобы записать трансформацию осей, но есть ли другие разумные подходы?

1 Ответ

1 голос
/ 10 августа 2020

Если вы хотите разложить данные, то, вероятно, самым простым вариантом будет преобразование журнала. Более того, преобразования журнала довольно распространены, поэтому для наблюдателя за вашим сюжетом не будет слишком сложно выяснить, что происходит. Тем не менее, всегда предлагается сделать очевидным, что происходит, поэтому обычно вы хотите изменить заголовок оси, чтобы отразить это.

Вот предложение с указанными вами данными, которое работает достаточно хорошо:

p + scale_x_log10(name='log col1', limits=c(0.01,10))

введите описание изображения здесь

Обратите внимание, конечно, что график не может начинаться с 0, поскольку log10(0) это -Inf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...