2015-03-31 3 views
1

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

 user distance time 
1 1 8.559737 4 
2 1 5.013872 5 
3 1 11.168995 9 
4 1 4.059428 4 
5 1 3.928071 4 
6 1 12.403195 7 

Я создаю свой участок, используя следующий код R.

plot <- ggplot(scatter, aes(x=scatter[['distance']], y=scatter[['time']])) + 
      geom_point(shape=16, size=5, colour=scatter[['user']]) + 
      scale_x_continuous("Distance", limits=c(0,100), breaks=seq(0, 100, 10)) + 
      scale_y_continuous("Time", limits=c(0,20), breaks=seq(0, 20, 2)) 

png(filename="scatters/0_2_scatter.png", width=800, height=800) 
plot(plot) 
dev.off() 

В результате получается следующий график. enter image description here

Почему моя легенда не показана? Не достаточен ли определение цвета в geom_point? Я пытаюсь создать легенду, содержащую черную точку и текст 'user1'.

ответ

3

Try:

ggplot(scatter, aes(x=distance, y=time)) + 
      geom_point(shape=16, size=5, mapping = aes(colour=user)) + 
      scale_x_continuous("Distance", limits=c(0,100), breaks=seq(0, 100, 10)) + 
      scale_y_continuous("Time", limits=c(0,20), breaks=seq(0, 20, 2)) 

Вся цель имея data аргумент отдельно от спецификации в aes() является то, что ggplot делает нестандартную оценку, позволяющую вам обращаться только к (некотируемым) имен столбцов. Никогда не обращайтесь к колонкам специально через $ или [[ или [ внутри aes().

Легенда должна появиться, если вы указали на карте эстетика (т. Е. Используйте aes()), которой у вас не было цвета.

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