ggplot2: может ли geom_point работать в расплавленных данных? - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в ggplot2.У меня есть этот фрейм данных:

df <- data.frame(testno = 1:4, y1 = c(1.2,3.1,4.6,6.7), y2 = c(5,3.2,9.6,8.8))
df$testno <- factor(df$testno)

, из которого я могу легко построить:

ggplot(df, aes(x = y1, y=y2)) + geom_point()

simple scatter plot x,y

Я расплавляю фрейм данных (либо потому, что мне нужно это сделать, либо потому, что то, что я получаю для анализа, уже расплавлено) "

dfmelt <- melt(df, id = "testno")

Может ли ggplot с geom_point быть применен к расплавленному фрейму данных, чтобы получить диаграмму рассеяния, приведенную выше? Например, этот способ не работает.

ggplot(dfmelt) +  geom_point(aes(x=value, y=value, group = testno))

Конечно, кадры данных, с которыми я работаю, намного больше / длиннее, и было бы очень удобно хранить расплавленный кадр данных без использования dcast или подобного подхода, чтобы добраться до широкого-формат. Не удалось найти правильное ключевое слово, чтобы найти ответ на этот простой вопрос.

Спасибо за помощь!

1 Ответ

0 голосов
/ 24 октября 2018

Хорошей практикой является подача аккуратных данных в ggplot, где каждое наблюдение находится в одной строке, а каждая переменная - в столбце.Это явно не относится к вашему meltdf кадру данных.К счастью, легко снова привести в порядок данные (даже для больших фреймов данных), если вы хотите построить их:

recreated_df <- spread(dfmelt, key = variable, value = value)

> recreated_df
      testno  y1  y2
1      1 1.2 5.0
2      2 3.1 3.2
3      3 4.6 9.6
4      4 6.7 8.8

Для других целей вы, конечно, можете сохранить свой расплавленный фрейм данных.

...