2013-12-09 2 views
6

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

V1<-rnorm(50) 
V2<-rnorm(50) 
V3<-c(rep("A",10),rep("B",10),rep("C",10),rep("D",10),rep("E",10)) 
V4<-V2+.1 
V5<-c(rep("BF1",9),rep("BF2",11),rep("BF3",8),rep("BF4",12),rep("BF5",10)) 
DF<-data.frame(V1,V2,V3,V4,V5) 

ggplot(DF,aes(x=V1,y=V2,size=V4,label=DF$V3,fill=V5),legend=FALSE)+ 
scale_y_continuous(limits = c(-3, 3))+ 
scale_x_continuous(limits = c(-3, 3))+ 
geom_point(color="black",shape=21,alpha=0.5)+ 
geom_text(size=2)+ 
theme_bw()+ 
scale_size(range = c(5, 20))+ 
scale_colour_brewer(palette="Blues") 

enter image description here

двух вопросов, у меня с этим сюжетом являются

1- Я хотел измените палитру цветов по умолчанию на что-то меньшее пастелью. Я думал, что использование аргумента scale_color_brewer изменит цвета на «Blues», но, очевидно, это не так.

2 Во-вторых, легенда для V4 теперь имеет пустые круги, тогда как без аргумента aes (fill =) круги заполнялись. Я знаю, это потому, что у меня сейчас много цветов для моих кругов, но я предпочел бы, чтобы сплошной (черный) круг был моей легендой, в отличие от открытых кругов. Есть ли способ переопределить легенду и сделать круги заполнены?

+2

Заполните и цвет другой эстетики. – joran

+1

будет немного сложно иметь меньше цветов «pastel-y», потому что установка «alpha = 0.5» будет разбавлять любой цвет заливки, который вы используете наполовину ... хотя, как @joran указывает, используя «scale_fill_brewer» вместо 'scale_colour_brewer 'поможет. –

ответ

4

Для (1) использовать scale_fill_brewer(palette="Blues")

Для (2) использовать guides(size=guide_legend(override.aes = list(fill="black", alpha=1)))


обновление: @BenBoker делает большую точку в своем комментарии выше. Я бы предложил, по крайней мере, прокрутить альфу в легенде: добавить к (2) выше: , color=guide_legend(override.aes = list(alpha=0.9)) или что-то в этом роде

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