2014-01-14 2 views
2

Я использую пакет ggplot2 в наборе данных для автомобилей. Я создал сетку на основе производителя и цвета, закодированные классом.Добавление данных в существующий график ggplot2

Что бы я хотел: добавить к каждому графику в сетке из набора данных mdat.Data следует представлять в виде точек данных. Результат, который я хотел бы видеть, - это данные в mdat, которые должны быть представлены на каждом участке в виде точек, класс должен быть добавлен к легенде, я хотел бы, чтобы каждая точка представлялась с другим цветом и формой. Я не уверен, как это можно сделать, и любая помощь будет оценена.

Большое спасибо!

## Sample data 
    p <- ggplot(mpg, aes(x=hwy, y=cty)) 
    p<- p + facet_grid(. ~ manufacturer) + facet_wrap(~manufacturer) 
    p<- p + geom_point(aes(colour = class), size = 7) 
    p<- p + scale_colour_brewer() 
    p<- p + geom_point(shape = 1, size = 7, alpha = I(0.7)) 
    print(p) 



##now add on the randomn portfolios on another grid 
    hwy = c("35", "40", "25") 
    cty = c("20", "25", "10") 
    mdat <- data.frame(hwy,cty) 
    mdat$class <- c("generic1", "generic2", "generic3") 

enter image description here

+0

Всего пару комментариев: (1) это не хорошая идея использовать градиент цветовую шкалу для дискретных значений (например, класс). (2) Использование цветного пивовара Блюз создает ситуацию, когда светлый блюз исчезает в фоновом режиме, заставляя вас использовать форму с границей. Лучше использовать [Set1 или Dark2] (http://www.cookbook-r.com/Graphs/Colors_%28ggplot2%29/) (3) Вы используете 'facet_grid (...)' и 'facet_wrap (..) 'вместе; последний переопределяет первое. (4) Вам не нужно 'I (0.7)', просто 'alpha = 0.7' будет делать. – jlhoward

+0

Благодарим за помощь! – qfd

ответ

4

Во-первых, в кадре mdat данных не использовать кавычки вокруг цифр, потому что делает их в качестве символов.

mdat <- data.frame(hwy = c(35, 40, 25), 
        cty = c(20, 25, 10)) 
mdat$class <- c("generic1", "generic2", "generic3") 

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

p+geom_point(data=mdat,aes(hwy,cty,shape=class,fill=class),size=7)+ 
    scale_shape_manual(values=c(21,22,23)) 

enter image description here

+0

Большое спасибо за помощь. Однако я все еще не могу получить цвет, как на вашем графике. Это то, что я добавил p <-p + geom_point (data = mdat, aes (hwy, cty, shape = class), size = 7) + scale_shape_manual (значения = c (21,22,23)) print (p) – qfd

+0

В моем коде была ошибка: внутри aes() должен быть fill = class. Я обновил ответ –

+0

Не думаю, что я понял, что понял, что я должен добавить заполнение также к aes ... и т. Д. Большое спасибо за Вашу помощь. У меня есть еще один быстрый вопрос. Если я хочу заменить фигуры фактическими именами, такими как «gen1», «gen2», «gen3» с разными цветами ... какую команду я должен использовать? Еще раз спасибо! – qfd

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