The signs of the discrete axis and marks are shifted compared to the actual values

I have a data set as follows: I have such a data frame called data_frame_test.

        Value    time   group
   3.96655960       0     184
  -8.71308460       0     184
 -11.11638947       0     184
  -6.84213562      11     184
  -1.25926609      11     184
  -4.60649529      11     184
   0.27577858      11     184
  11.85394249      20     184
  -0.27114563      20     184
   1.73081284      20     184
   1.78209915      20     184
  11.34305840      20     184
  13.49688263      20     184
  -7.54752045      20     184
 -13.63673286      25     184
  -5.75711517      25     184
   0.35823669      25     184
  -2.45237694      25     184
   0.49313087       0      66
  -9.04148674       0      66
 -15.50337906       0      66
 -17.51445351       0      66
 -10.66807098       0      66
  -2.24337845       5      66
 -13.79929533       5      66
   1.33287125       5      66
   2.22143402       5      66
  11.46484833      10      66
  23.26805916      10      66
   9.07377968      10      66
   4.28664665      10      66

data_frame_test <- structure(list(Value = c(3.9665596, -8.7130846, -11.11638947, 
-6.84213562, -1.25926609, -4.60649529, 0.27577858, 11.85394249, 
-0.27114563, 1.73081284, 1.78209915, 11.3430584, 13.49688263, 
-7.54752045, -13.63673286, -5.75711517, 0.35823669, -2.45237694, 
0.49313087, -9.04148674, -15.50337906, -17.51445351, -10.66807098, 
-2.24337845, -13.79929533, 1.33287125, 2.22143402, 11.46484833, 
23.26805916, 9.07377968, 4.28664665), time = c(0L, 0L, 0L, 11L, 
11L, 11L, 11L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 25L, 25L, 25L, 
25L, 0L, 0L, 0L, 0L, 0L, 5L, 5L, 5L, 5L, 10L, 10L, 10L, 10L), 
    group = c(184L, 184L, 184L, 184L, 184L, 184L, 184L, 184L, 
    184L, 184L, 184L, 184L, 184L, 184L, 184L, 184L, 184L, 184L, 
    66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 
    66L)), .Names = c("Value", "time", "group"), class = "data.frame", row.names = c(NA, 
-31L))

I want to build a square squared value for each time point and group.

ggplot(data_frame_test, aes(x=factor(time), y=Value, colour = factor(group)))  + 
  geom_boxplot(outlier.size=0, fill = "white", position="identity", alpha=.5) +
  scale_x_discrete(limits = seq(-1,26), breaks = seq(-1,26), labels = seq(-1,26))

This leads to the following figure, which is almost right: enter image description here However, the labels and ticks of the x axis are shifted. How can I place it where it belongs?

+4
source share
2 answers

I'm not quite sure why this is happening, but I will probably make such a plot, since converting time into a factor is intuitive for me:

ggplot(data_frame_test, 
       aes(x = time, y=Value, colour = factor(group), group = interaction(time, group))) + 
  geom_boxplot(outlier.size=0, fill = "white", position="identity", alpha=.5)

What gives:

enter image description here

You can use scale_x_continuousto change gaps, etc.

+5

, . :

ggplot(data_frame_test, aes(x=factor(time, levels = seq(-1,26), ordered = TRUE), 
                            y=Value, colour = factor(group)))  + 
  geom_boxplot(outlier.size=0, fill = "white", position="identity", alpha=.5) +
  scale_x_discrete(drop = FALSE)

final schedule

+6

Source: https://habr.com/ru/post/1612549/


All Articles