Получение раскраски легенды в пустом ggplot - PullRequest
6 голосов
/ 28 июня 2010

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

Так что в приведенном ниже коде я бы хотел обменять geom_point() на geom_blank().Нет проблем.

Однако это также удаляет информацию о цвете и размере из легенд, которые создает код графика.Есть ли способ вернуть это обратно?

ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) + 
  #geom_point(na.rm=FALSE) +
  geom_blank() + 
  facet_wrap(~ppno) +
  scale_colour_manual(values=cols) +
  scale_y_continuous(name="VAS Pain (a.u.)") +
  scale_x_continuous(name="Time (minutes)")

Как правильно вернуть цветные индикаторы обратно в legend(s)?Теперь они отображают только значения различных уровней определенного параметра (цвет или размер), но не фактический графический элемент (цвет или размер точки), который соответствует определенному уровню.

Ответы [ 4 ]

2 голосов
/ 28 июня 2010

Как насчет того, чтобы скрыть фактические точки за пределами графика? Что-то вроде этого:

ggplot(cars, aes(x=speed+100, y=dist))+ #move x values to the right
  geom_point(aes(col=speed))+
  scale_x_continuous(at=seq(5,125,by=5), limits=c(0,30)) #set plotting window
1 голос
/ 14 февраля 2011

Простой способ сделать это - использовать параметр размера:

ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) 
 + geom_point(size=0)
0 голосов
/ 10 ноября 2010

В конце, взяв с собой предложение Анико (что я изначально не мог приступить к работе, поэтому отказался, неправильно), я придумал следующий код.

vas2 <- vas
vas2$time <- vas2$time+181
pp <- p %+% vas2 #p is the above plot assigned to a variable.
pp + scale_x_continuous(name="Time (minutes)", limits=c(0,180)) 

Таким образом, означало , что мы просто сместили данные по оси, а затем исключили эту часть

0 голосов
/ 28 июня 2010

Не могли бы вы нарисовать два geom_points () - один с цветом вашего фона?

ggplot(cars, aes(x=speed, y=dist))+
geom_point(aes(col=speed))+
geom_point(colour="white")+
theme_bw()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...