Различающаяся шкала Y между двумя пределами - PullRequest
1 голос
/ 05 апреля 2019

Я хотел бы создать график рассеяния, который имеет только одну ось Y, но на этой оси установлены две шкалы между различными пределами.

Причина в том, что у меня есть данные, которые плотно заполнены около нуля, но также есть точки, которые достигают до 2500. Я хотел бы показать некоторые из распределения точек ниже 100, не обрезая данные вблизиthe top.

Приветствуются и другие предложения для этого.

Я также пытался использовать масштаб журнала.Это завершает то, что я хотел бы показать.

# scatter plot
sp<-ggplot(cars, aes(x = speed, y = dist)) + geom_point()

Например: я хотел бы использовать шкалу с шагом от 0 до 10 по оси y с тем же интервалом, что и от 0 до 25, показанным здесь.И затем следующий тик отмечает увеличение от 25 до 50 с равным интервалом, равным расстоянию от 0 до 10. a busy cat

Надеюсь, я сделал это максимально ясно.Спасибо!

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Редактировать ...

Привет. Извините, я неправильно понял ваш оригинальный пост. Я не знаю, как сделать именно то, что вы ищете. Похоже, было бы трудно настроить ось у в такой степени, но, возможно, другие на этом сайте могут знать способ.

Читая ваш комментарий о преобразовании журнала, есть способ показать данные в их преобразованном состоянии, но с сохранением исходных меток на оси Y. Может быть, это будет самый простой способ форматирования этого графика для вас.

Пожалуйста, смотрите раздел здесь о преобразованиях оси. Применяя это к вашему коду выше:

sp<-ggplot(cars, aes(x = speed, y = dist)) + geom_point() +  scale_y_log10()

Это даст диаграмму согласно ниже. Я надеюсь, что это полезно для вас.

enter image description here

0 голосов
/ 07 апреля 2019

Это не совсем так, но сделайте похожий трюк:

ggplot(cars, aes(x = speed, y = dist)) + geom_point() + 
  scale_x_sqrt()

enter image description here

...