графическое изображение двух векторов данных по диаграмме рассеяния GGPLOT2 с помощью R

Я использую ALT-left и альтернативных правых для выталкивания/продвижения из/в стопку тега.

" Alt-right/left to navigate forward/backward in the tags stack
map <M-Left> <C-T>
map <M-Right> <C-]>

, Если Вы используете hjkl для перемещения, можно отобразиться <M-h> и <M-l> вместо этого.

18
задан Glorfindel 15 April 2019 в 19:48
поделиться

4 ответа

Просто продолжаю то, что предложил Ян: для ggplot2 вы действительно хотите, чтобы весь материал оси Y был в одном столбце с другим столбцом в качестве фактора, указывающего, как вы хотите его украсить. Это легко сделать с расплавом . А именно:

qplot(x_value, value, 
      data = melt(dd, measure.vars=c("Predicted_value", "Actual_value")), 
      colour=variable) + facet_wrap(~State_CD)

Вот как это выглядит для меня: alt text
(источник: princeton.edu )

Чтобы получить представление о том, что на самом деле делает melt , вот голова:

> head(melt(dd, measure.vars=c("Predicted_value", "Actual_value")))
     x_value State_CD        variable      value
1  1.2898779        A Predicted_value  1.0913712
2  0.1077710        A Predicted_value -2.2337188
3 -0.9430190        A Predicted_value  1.1409515
4  0.3698614        A Predicted_value -1.8260033
5 -0.3949606        A Predicted_value -0.3102753
6 -0.1275037        A Predicted_value -1.2945864

Понимаете, она "тает" Predicted_value и Actual_value в один столбец с именем value и добавляет другой столбец с именем variable , позволяющий узнать, из какого столбца он изначально взят.

19
ответ дан 30 November 2019 в 08:15
поделиться

Обновление : несколько лет спустя я почти всегда использую метод Джонатана (через пакет tidyr ) с ggplot2. Мой ответ ниже работает в крайнем случае, но быстро становится утомительным, когда у вас есть 3+ переменных.


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

ggplot() + 
geom_point(data=dd, aes(x_value, Actual_value, group=State_CD), colour="green") + 
geom_point(data=dd, aes(x_value, Predicted_value, group=State_CD), shape = 2) + 
facet_wrap(~ State_CD) + 
theme(aspect.ratio = 1)

Вытягивание первого набора точек из ggplot () дает ему тот же синтаксис, что и второй. Я считаю, что с этим легче справиться, потому что синтаксис тот же, и он подчеркивает «Грамматику графики», которая лежит в основе ggplot2.

6
ответ дан 30 November 2019 в 08:15
поделиться

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

Это что-то вроде того, что вы пытаетесь сделать?

dd<-data.frame(type=rep(c("Predicted_value","Actual_value"),20),y_value=rnorm(40),
                x_value=rnorm(40),State_CD=rnorm(40)>0)
qplot(x_value,y_value,data=dd,colour=type,facets=.~State_CD)
2
ответ дан 30 November 2019 в 08:15
поделиться

задолго до того, как я разместил вопрос, я наткнулся на эту ветку справки R , которая могла мне помочь. Похоже, я могу это сделать:

 pg + geom_line(data=dd,aes(x_value, Actual_value,group=State_CD), colour="green") 

это хороший способ делать что-то? Для меня это странно, потому что добавление второго элемента имеет совершенно другой синтаксис, чем первый.

1
ответ дан 30 November 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: