2016-12-05 5 views
0

Я использую ggplot для рассеивания 2 наборов данных и хочу показать легенду в левом верхнем углу. Я пробовал код, но не работал. Я не знаю, почему это произошло.Почему ggplot2 легенда не отображается на графике

ggplot(mf, aes(log10(mf[,2]),mf[,1])) 
+ ggtitle("Plot") 
+ geom_point(color = "blue") + theme(plot.margin = unit(c(1,2,1,1), "cm")) 
+ xlab("xxx") + ylab("yyy") 
+ theme(plot.title = element_text(size=18,hjust = 0.5, vjust=4)) 
+ geom_point(data=mf2,aes(log10(mf2[,2]),mf2[,1]),color="red") 
+ theme(axis.title.x = element_text(size = rel(1.3))) 
+ theme(axis.title.y = element_text(size = rel(1.3))) 
+ scale_color_discrete(name = "Dataset",labels = c("Dataset 1", "Dataset 2")) 

enter image description here

ответ

0

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

mf является dataframe с log и val как его колонка.

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

Вы можете использовать приведенный ниже код, чтобы получить требуемый результат.

ggplot(mf, aes(val,log))+ 
    geom_point(aes(color = "Dataset1"))+ 
    geom_point(data=mf2,aes(color="Dataset2"))+ 
    labs(colour="Datasets",x="xxx",y="yyy")+ 
    theme(legend.position = c(0, 1),legend.justification = c(0, 1))+ 
    scale_color_manual(values = c("blue","red")) 

The Output

+0

Я еще один метод, который объединяет два набора данных вместе с использованием "reshape2" и "плавить". Но ваш метод намного шире! –

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