1

I'd like to display my data so it will be more interpretable visually.

Is it possible to display athesum of the points of the same color, in form of cercle with size proportionnal to the quantities, for each correspondance (deplacement,type) ? or even a bar plot four times in each correspondance for the two values (0,1) ?

Here is my data and mycode :

 df=structure(list(Plateform = c("0", "1", "0", "1", "0", "0", "0", 
    "1", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "1", "1", 
    "0", "0", "0", "1", "0", "1", "1", "1", "1", "1", "0", "0", "0", 
    "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "1", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "1", "1", "0", "1", "1", "0", "1", "0", "0", "0", "0", "1", 
    "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "1", 
    "0", "0", "1", "1", "0", "1", "0", "1", "0", "0", "1", "0", "0", 
    "1", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "0", "0", 
    "0", "0", "0", "1", "1", "0", "0", "1", "0", "0", "0", "0", "1", 
    "0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0", "0", 
    "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "1", "0", "1", "1", "1", "0", "1", "0", "0", "1", "0", "1", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", 
    "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "1", 
    "1", "0", "1", "0", "1", "1", "1", "1", "1", "0", "1", "0", "1", 
    "1", "0", "1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", 
    "1", "0", "1", "1", "1", "1", "1", "1", "0", "1", "1", "0", "1", 
    "0", "1", "0", "0", "1", "0", "1", "0", "1", "0", "1", "1", "0", 
    "0", "1", "0", "1", "1", "0", "1", "1", "0", "1", "1", "0", "0", 
    "1", "0", "1", "0", "1", "1", "1", "0", "1", "1", "0", "1", "0", 
    "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "1", "1", "1", 
    "0", "0", "0", "0", "1", "0", "1", "1", "1", "0", "1", "1", "1", 
    "1", "0", "1", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", 
    "1", "1", "0", "1", "1", "1", "0", "1", "1", "1", "1", "1", "1", 
    "1", "0", "1", "1", "0", "1", "1", "0", "0", "0", "0", "1", "1", 
    "1", "0", "1", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0", 
    "0", "1", "0", "0", "1", "1", "1", "0", "1", "0", "1", "1", "0", 
    "1", "1", "0", "1", "0", "0", "0", "1", "1", "0", "1", "1", "1", 
    "0", "1", "1", "0", "0", "0", "1", "0", "0", "0", "1", "1", "0", 
    "0", "0", "0", "0", "1", "1", "1", "0", "1", "0", "0", "0", "1", 
    "1", "0", "0", "1", "0", "1", "1", "0", "1", "1", "1", "1", "0", 
    "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "1", "1", "0", 
    "0", "1", "1", "1", "0", "0", "1", "1", "0", "0", "0", "1", "1", 
    "0", "1", "0", "1", "0", "0", "0", "1", "1", "0", "1", "0", "0", 
    "1", "1", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "1", 
    "0", "0", "0", "1", "1", "0", "1", "0", "0", "0", "0", "0", "1", 
    "1", "1", "1", "0", "0", "1", "0", "0", "0", "1", "1", "0", "1", 
    "1", "0", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", 
    "1", "0", "0", "1", "0", "0", "0", "1", "1", "0", "0", "1", "0", 
    "1", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "1", "1", 
    "1", "1", "0", "0", "1"), Deplacement = c("NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "OUI", "OUI", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "OUI", "OUI", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "OUI", "OUI", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", "NON", 
    "NON", "NON", "NON", "NON", "OUI", "OUI", "OUI", "NON", "NON", 
    "NON", "NON"), Type = c("NON", "OUI", "OUI", "NON", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "NON", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "NON", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "NON", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "NON", 
    "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "NON", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "NON", 
    "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", 
    "NON", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "NON", "OUI", "OUI", "OUI", "NON", "OUI", "NON", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "NON", "NON", 
    "NON", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "NON", 
    "OUI", "OUI", "OUI", "OUI", "NON", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "NON", "OUI", "NON", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "NON", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "NON", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "NON", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "NON", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", "OUI", 
    "OUI", "OUI", "OUI", "NON", "OUI", "OUI", "OUI", "OUI")), .Names = c("Plateform", 
    "Deplacement", "Type"), row.names = c(NA, -545L), class = "data.frame")

 ggplot(df, aes(x=as.factor(Type),y=as.factor(Deplacement), col=Plateform))  + geom_point(size=2)   +  geom_jitter() 

enter image description here

ranell
  • 683
  • 13
  • 29
  • You probably need something like this: http://t-redactyl.io/blog/2016/04/creating-plots-in-r-using-ggplot2-part-10-boxplots.html – AntoniosK Jan 18 '18 at 13:44
  • I have to admit, that I do not understand the question. This looks to me, as if a mosaic plot was a suitable depiction of the data https://cran.r-project.org/web/packages/ggmosaic/vignettes/ggmosaic.html – Bernhard Jan 18 '18 at 13:56
  • 1
    Perhaps `geom_count`? – Andrew Gustar Jan 18 '18 at 14:00
  • @andrew , that seems interesting, thanksa lot, but circle are superposed and i can't compare their dimensions – ranell Jan 18 '18 at 14:03

3 Answers3

2

Is this what you want?enter image description here

ggplot(df, aes(x=as.factor(Type),y=as.factor(Deplacement), col = Plateform))  + 
    geom_jitter(size=1)  +  
    stat_bin2d(geom = "point", aes(size = ..count..), fill = NA, shape = 1) +
    scale_size_area(max_size = 50) +
    guides(size = "none")
GL_Li
  • 1,758
  • 1
  • 11
  • 25
  • That is perfect, thank you a lot. Lastly, how to themake circle line less thin than that ? – ranell Jan 18 '18 at 14:19
  • 1
    use `stroke` to control circle border thickness as `stat_bin2d(geom = "point", aes(size = ..count..), fill = NA, shape = 1, stroke = 0.3)` – GL_Li Jan 18 '18 at 14:24
1
library(data.table)

df[,count := .N, by = .(Plateform,Type,Deplacement)]
simpleplot <- df[,.SD[1],by = .(Plateform,Type,Deplacement)]

ggplot(simpleplot , aes(x=as.factor(Type),y=as.factor(Deplacement), col=Plateform, size = count))  + 
  geom_jitter(width = 0.2, height = 0.2) 

enter image description here

ggplot(simpleplot , aes( x=Plateform, y = count))  + 
  geom_bar(stat = "identity") +
  facet_grid(Type ~Deplacement, scales = "free") 

enter image description here

denis
  • 5,580
  • 1
  • 13
  • 40
1

To give you a third option which borrows heavily from Claus Wilke's answer here: https://stackoverflow.com/a/47493452/8583393

library(tidyverse)
df_count <- df %>% 
 group_by(Deplacement, Type, Plateform) %>%
 count() %>%
 ungroup() %>%
 add_row(Deplacement = "OUI", Type = "NON", Plateform = 0, n = 0L) %>% 
 mutate(index = as.integer(as.numeric(Plateform) + 1))

 df_count$Deplacement <- factor(df_count$Deplacement, levels = c("NON", "OUI"))
 df_count$Type <- factor(df_count$Type, levels = c("OUI", "NON"))

df_count
# A tibble: 8 x 5
#  Deplacement Type  Plateform     n index
#  <fct>       <fct> <chr>     <int> <int>
#1 NON         NON   0            20     1
#2 NON         NON   1            31     2
#3 NON         OUI   0           294     1
#4 NON         OUI   1           186     2
#5 OUI         NON   1             1     2
#6 OUI         OUI   0             2     1
#7 OUI         OUI   1            11     2
#8 OUI         NON   0             0     1


ggplot(data = df_count, aes(x=index, y=sqrt(n), fill=Plateform)) +
 geom_col(width =1) +
 coord_polar(theta = "x", direction = -1) +
 facet_grid(Deplacement~Type) +
 theme_void() +
 theme(legend.position = "bottom")

enter image description here

markus
  • 25,843
  • 5
  • 39
  • 58