интервал разгруппированного боксплота в R

avatar
Jskeep
8 апреля 2018 в 06:47
203
2
-1

Я пытаюсь уменьшить расстояние по вертикали между моими прямоугольными диаграммами и группами типов по оси Y. Я не могу найти повторения моей проблемы где-либо еще...

bp <- ggplot(data = data, aes(x=type, y=time.from.sunset))

bp + geom_boxplot(width = 0.4, fill = "white") +
  coord_flip() + #switches x and y axes
  scale_y_reverse(limits=c(60,-20), breaks = c(60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, -5, -10, -15, -20), labels = list(60, "", 50, "", 40, "", 30, "", 20, "", 10, "", "sunset", "", -10, "", -20)) +
  geom_point(size = 1.5, shape = 1) +
  labs(x = "Fly type\n", y = "\nTime from sunset (minutes)") +
  theme(strip.background = element_blank()) + 
  theme(panel.background = element_rect(fill="white")) +
  theme(axis.text.y = element_text(colour = "black", size = 14)) +
  theme(axis.text.x = element_text(colour = "black", size = 10)) + 
  theme(axis.title.x = element_text(colour = "black", size = 14)) + 
  theme(axis.line.x = element_line(colour = "black")) +
  theme(axis.ticks.y = element_blank()) + 
  geom_hline(yintercept=0, linetype="dashed", color = "red", size=0.5)

Это фотография моего графика: OP Plot

Источник
Henrik
8 апреля 2018 в 07:57
0

Изменить высоту вашего графического устройства?

Michael Harper
8 апреля 2018 в 08:16
2

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

Ответы (2)

avatar
Michael Harper
8 апреля 2018 в 09:31
0

Расстояние между полосами управляется аргументом width, для которого вы установили значение 0,4.

Воспроизведение вашей проблемы на минимальном примере:

library(ggplot2)

ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_boxplot(width = 0.4, fill = "white")+
  coord_flip()

enter image description here

Изменение width=1 приводит к тому, что между ними нет интервала:

enter image description here

Как указал @Henrik, если вы хотите изменить соотношение сторон полос, вы можете изменить высоту графического устройства. Это можно легко сделать в аргументе ggsave, добавив параметр height:

avatar
Vishwas Shrikhande
8 апреля 2018 в 07:28
-2

принимая к сведению предыдущий ответ здесь https://coderhelper.com/a/20079945/509479, он просит использовать следующие параметры

p + geom_boxplot(aes(fill = factor(gp)),position=position_dodge(1))
Jskeep
8 апреля 2018 в 07:38
0

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

Michael Harper
8 апреля 2018 в 08:21
0

Этот ответ не сработает для этой проблемы, поскольку диаграммы не сгруппированы. Кроме того, если вы считаете, что на вопрос уже был дан ответ ранее, отметьте вопрос как дубликат, а не копируйте ответ.

Vishwas Shrikhande
9 апреля 2018 в 01:52
0

все еще новичок в coderhelper, поэтому не знаю, как это работает или каковы правила для лучшего сообщества

Michael Harper
9 апреля 2018 в 22:02
0

@VishwasShrikhande, никаких проблем, просто сообщаю вам о процедуре на сайте :) Вы можете узнать больше о пометке горшков здесь: coderhelper.com/help/привилегии/flag-posts