2015-11-10 5 views
0

Я хочу создать штрих-код, наложенный с точками, где обе имеют отдельные легенды. Кроме того, я хочу выбрать цвет баров и размер точек, используя аргументы за пределами aes(). Поскольку оба изображения не отображаются, легенда не создается.ggplot: Вручную добавьте легенды для эстетики, которые не отображаются.

1) Как добавить легенду вручную как для заполнения, так и для размера?

library(ggplot2) 

d <- data.frame(group = 1:3,  
       prop = 1:3) 

ggplot(d, aes(x=group, y=prop)) + 
    geom_bar(stat="identity", fill="red") + 
    geom_point(size=5) 

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

2) Есть ли ручной способ сказать: Добавить легенду с этим названием, этими фигурами, этими цветами и т. Д.?

d <- data.frame(dummy1="d1", 
       dummy2="d2", 
       group = 1:3,  
       prop = 1:3) 


ggplot(d, aes(x=group, y=prop, fill=dummy1, size=dummy2)) + 
    geom_bar(stat="identity", fill="red") + 
    geom_point(size=5) + 
    scale_fill_discrete(name="fill legend", label="fill label") + 
    scale_size_discrete(name="size legend", label="size label") 

Выше я сопоставляются fill к dummy1. Поэтому я бы ожидал, что scale_fill_discrete изменит эту легенду. Но вместо этого вместо этого следует изменить легенду size.

3) Я не уверен, что пошло не так. Есть идеи?

ответ

3

Я не уверен, почему вы говорите «Также, я хочу выбрать цвет баров и размер точек, используя аргументы вне aes()». Это то, что вы пытаетесь сделать, или это то, что вам нужно сделать, учитывая, как работает ggplot?

Если это последнее, одно решение, как под -

library(ggplot2) 

d <- data.frame(group = 1:3,  
       prop = 1:3) 

ggplot(d, aes(x=group, y=prop)) + 
    geom_bar(stat="identity",aes(fill="label")) + 
    geom_point(aes(size='labelsize')) + 
    scale_fill_manual(breaks = 'label', values = 'red')+ 
    scale_size_manual(breaks = 'labelsize', values = 5) 
+0

Последнее. Наверное, я был неправ, что мне нужно установить размер и заполнить внешний вид. Благодарю. –

Смежные вопросы