Как настроить размер линии в geom_line без получения другой (бесполезной) легенды?

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

qplot(date,value,data=graph1,geom="line",colour=variable,xlab="",ylab="",size=1)
+ scale_y_continuous(limits = c(-0.3,0.3)) + opts(aspect.ratio = 2/(1+sqrt(5))) 
+ scale_colour_manual("Variable",c(Line1="red",Line2="blue")) 
+ opts(legend.size="none")

Мой график состоит из двух линий, представляющих временной ряд двух разных переменных за один и тот же промежуток времени. Переменная сопоставляется с цветом. Если я пытаюсь повлиять на размер строки, qplot всегда пытается сопоставить «размер» с другим параметром и отобразить другую легенду.

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

Спасибо за любые предложения!


person Matt Bannert    schedule 30.07.2010    source источник


Ответы (1)


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

qplot(date, value,data=graph1,
      geom="line",
      colour=variable,xlab="",
      ylab="",
      size= I(1))+
   scale_y_continuous(limits = c(-0.3,0.3))+
   scale_colour_manual("Variable",c(Line1="red",Line2="blue"))+ 
   opts(legend.size="none",
        aspect.ratio = 2/(1+sqrt(5)))

Теперь не должно быть легенды о размере.

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

last_plot() + scale_size(legend = F)
person JoFrhwld    schedule 30.07.2010
comment
Спасибо за предоставление даже двух рабочих решений. Просто установка size=I(1) работала без каких-либо других аргументов. Использование + scale_size (legend = F) также работало само по себе. Будущие гуглеры: обратите внимание, что опция +opts(legend.size=none) (которую я попробовал, сочла бы наиболее интуитивным решением, особенно после прочтения легенд глав и осей из книги Хэдли), к сожалению, не работает. - person Matt Bannert; 31.07.2010
comment
Вы хотите opts(legend.position = "none"). - person hadley; 31.07.2010
comment
@hadley, нет, не здесь. Насколько я понимаю, это скрыло бы ВСЕ легенды. В моем примере стандартная цветовая легенда просто идеальна. - person Matt Bannert; 01.08.2010