Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot each group consists of only one observation

Tags:

plot

r

ggplot2

I'm trying to make a plot similar to this answer: https://stackoverflow.com/a/4877936/651779

My data frame looks like this:

df2 <- read.table(text='measurements samples value
1        4hours   sham1     6
2          1day   sham1   175
3         3days   sham1   417
4         7days   sham1   163
5        14days   sham1    37
6        90days   sham1   134
7        4hours   sham2     8
8          1day   sham2   402
9         3days   sham2   482
10        7days   sham2    67
11       14days   sham2    16
12       90days   sham2    31
13       4hours   sham3   185
14         1day   sham3   402
15        3days   sham3   482
16        7days   sham3    85
17       14days   sham3    29
18       90days   sham3    10',header=T)

And plot it with

ggplot(df2, aes(measurements, value)) + geom_line(aes(colour = samples))

No lines show in the plot, and I get the message

geom_path: Each group consist of only one observation. 
Do you need to adjust the group aesthetic?

I don't see where what I'm doing is different from the answer I linked above. What should I change to make this work?

like image 867
Niek de Klein Avatar asked Jan 24 '14 16:01

Niek de Klein


People also ask

What does Geom_path Each group consists of only one observation do you need to adjust the group aesthetic mean?

Do you need to adjust the group aesthetic? This error usually occurs when you attempt to create a line chart using ggplot2 but the x-axis variable is a factor, which can cause issues when connecting the points in the plot.

What does group mean in Ggplot?

Group is for collective geoms Point plotted with geom_point() uses one row of data and is an individual geom. Bar plotted with geom_col() is also an individual geom. A polygon consists of multiple rows of data so it is a collective geom.

What is Geom_line in Ggplot?

geom_line() connects them in order of the variable on the x axis. geom_step() creates a stairstep plot, highlighting exactly when changes occur. The group aesthetic determines which cases are connected together.

What is group aesthetic?

The group aesthetic controls which rows of the data get grouped together for geom like geom_line() and geom_smooth() which use multiple rows to create one “thing” on the plot. When using geom_line() and color is discrete, group is automatically set to match it, so you get, for example, one line of each color.


1 Answers

Add group = samples to the aes of geom_line. This is necessary since you want one line per samples rather than for each data point.

ggplot(df2, aes(measurements, value)) + 
  geom_line(aes(colour = samples, group = samples))

enter image description here

like image 196
Sven Hohenstein Avatar answered Sep 30 '22 15:09

Sven Hohenstein