qplot
R
- STID 2ème annéelibrary(ggplot2)
library(reshape2) # pour les données tips
Nous répondons aux questions suivantes avec la fonction qplot()
Dans les données iris
, représenter les boîtes à moustaches des 4 variables pour les trois espèces.
m = melt(iris)
## Using Species as id variables
qplot(Species, value, data = m, facets = variable ~ ., geom = "boxplot")
tips
du package reshape2
, représenter total_bill
en fonction de sex
et smoker
.qplot(sex, total_bill, data = tips, facets = ~ smoker, geom = "boxplot")
t = aggregate(total_bill ~ sex + smoker, tips, mean)
qplot(sex, smoker, data = t, fill = total_bill, geom = "bin2d")
tips
, représenter total_bill
et tip
, en fonction de sex
de 2 façonsqplot(total_bill, tip, data = tips, color = sex)
qplot(total_bill, tip, data = tips, color = sex, facets = ~ sex)
qplot(cut(total_bill, 3), tip, data = tips, color = sex, facets = ~ sex, geom = "boxplot")
smoker
en plusqplot(total_bill, tip, data = tips,
color = sex, shape = smoker,
facets = smoker ~ sex)
qplot(cut(total_bill, 3), tip, data = tips,
color = sex, geom = "boxplot",
facets = smoker ~ sex)
bonus : à partir des données anscombe
, refaire le graphique suivant
ans1 = transform(setNames(subset(anscombe, select = c(x1, y1)), c("x", "y")), ex = 1)
ans2 = transform(setNames(subset(anscombe, select = c(x2, y2)), c("x", "y")), ex = 2)
ans3 = transform(setNames(subset(anscombe, select = c(x3, y3)), c("x", "y")), ex = 3)
ans4 = transform(setNames(subset(anscombe, select = c(x4, y4)), c("x", "y")), ex = 4)
ans = rbind(ans1, ans2, ans3, ans4)
qplot(x, y, data = ans, facets = ~ ex, geom = "point")
Avec un peu de programmation (pour information)
ans.bis = lapply(1:4, function (ex) {
return(transform(setNames(anscombe[,paste(c("x", "y"), ex, sep = "")], c("x", "y")), ex = ex))
})
ans.ter = Reduce(function (a, b) { return (rbind(a, b))}, ans.bis)
qplot(x, y, data = ans.ter, facets = ~ ex, geom = "point")
Comment répondre aux questions suivantes :
Les pourboires (
tip
) dépendent-ils du montant (total_bill
)Et des jours de la semaine (
day
) ?Et du nombre de convives (
size
) ?Croiser
tip
en fonction detotal_bill
etsize