Clique aqui para voltar a página principal.
Definição: O gráfico de pizza (de setores) é um diagrama circular onde os valores de cada categoria representada são proporcionais às frequências (fatia da pizza).
Para que serve: O gráfico de pizza é uma maneira de resumir a informação de uma variável qualitativa/categórica. Serve para comparar quantidades em cada categoria.
Uma variável é chamada qualitativa, também conhecida como categórica, se seus valores pertencem a uma coleção de classes não superpostas. Exemplos comuns incluem notas de letra de estudante (A, B, C, D ou F), classificação de algo (Baixo, médio ou alto), Sexo (Feminino ou Masculino).
Os tutoriais desta seção são baseados em um banco de dados interno do R chamado mtcars. Consiste em uma coleção de informações sobre 32 carros.
data(mtcars)
mtcars <- within(mtcars, {
am <- factor(am, labels=c('Automático','Manual'))
})
mtcars <- within(mtcars, {
vs <- factor(vs, labels=c('Não','Sim'))
})
par(bg="#fdf6e3")
par(mfrow=c(1,2),bg="#fdf6e3")
# Fonte: Apostila do Prof. Felipe Ribeiro
contagem = table(mtcars$am)
nomes = levels(mtcars$am)
porcent = round(contagem/sum(contagem)*100,2)
rotulo=paste(nomes," (",porcent,"%",")",sep="")
pie(table(mtcars$am),labels=rotulo, main="Tipo de marcha", col=c("red","blue"))
contagem2 = table(mtcars$vs)
nomes2 = levels(mtcars$vs)
porcent2 = round(contagem2/sum(contagem2)*100,2)
rotulo2=paste(nomes2," (",porcent2,"%",")",sep="")
pie(table(mtcars$vs),labels=rotulo2, main="Tipo", col=c("#003154","#dd4a37"))
library(RColorBrewer)
par(bg="#fdf6e3")
#display.brewer.all()
COR<-brewer.pal(4,"Dark2")
#COR
library(plotrix)
pieval<-c(0.1,0.15,0.25,0.5)
pielabels<-
c("A gente odeia\n Pizza","Fazemos oposição\n às Pizzas","Não me importo\n com Pizza","Eu AMO pizza")
pielabels2=paste(pielabels,"\n",pieval,sep="")
pie3D(pieval,radius=0.95,labels=pielabels2,explode=0.1,main="Opinião sobre a Pizza em 3D",
col=COR)
par(mfrow=c(1,2),bg="#fdf6e3")
pie3D(table(mtcars$am),labels=rotulo,radius=0.9,explode=0.2, main="Pizza 3D do Tipo de marcha", col=c("red","blue"))
pie3D(table(mtcars$vs),labels=rotulo2, main="Pizza 3D do Tipo", col=c("#003154","#dd4a37"))
library(ggplot2)
pizza<-ggplot(mtcars, aes(x=factor(1), fill=am))+
geom_bar(width = 1)+
coord_polar("y")
pizza+ theme(plot.background = element_rect(fill = "#e2ded3", colour = "#e2ded3"))
dados = data.frame(round(contagem/sum(contagem)*100,2))
dados <- within(dados, {
Var1 <- factor(Var1, labels=c('Automático','Manual'))
})
attach(dados)
dados <- dados[order(Freq),]
detach(dados)
blank_theme <- theme_minimal()+
theme(
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid=element_blank(),
axis.ticks = element_blank(),
plot.title=element_text(size=14, face="bold")
)
library(scales)
pizza<-ggplot(dados, aes(x="", y=Freq, fill=Var1))+
geom_bar(width = 1, stat = "identity")+
coord_polar("y")
pizza + scale_fill_brewer(palette="Dark2") + blank_theme +
theme(axis.text.x=element_blank()) +
geom_text(aes(y = Freq/2 + c(0, cumsum(Freq)[-length(Freq)]),
label = percent(Freq/100)), data = dados, size=5)
library("ggthemes")
pizza+ scale_fill_brewer(palette="Dark2") + theme_economist() +
geom_text(aes(y = Freq/2 + c(0, cumsum(Freq)[-length(Freq)]),
label = percent(Freq/100)), size=5)
library(broom)
library(tidyverse)
dat = data.frame(count=c(10,60,20,50),
ring=c("A", "A","B","B"),
category=c("C","D","C","D"))
# registro do p-valor
cs.pvalue <- dat %>% spread(value = count,key=category) %>%
ungroup() %>% select(-ring) %>%
chisq.test() %>% tidy()
cs.pvalue <- dat %>% spread(value = count,key=category) %>%
select(-ring) %>%
fisher.test() %>% tidy() %>% full_join(cs.pvalue)
# registro das frações
#dat = dat[order(dat$count), ]
dat %<>% group_by(ring) %>% mutate(fraction = count / sum(count),
ymax = cumsum(fraction),
ymin = c(0,ymax[1:length(ymax)-1]))
# Limite de X
baseNum <- 4
#numCat <- length(unique(dat$ring))
dat$xmax <- as.numeric(dat$ring) + baseNum
dat$xmin = dat$xmax -1
# Gráfico Doughnut
p2 = ggplot(dat, aes(fill=category, alpha = ring,
ymax=ymax,ymin=ymin,xmax=xmax,xmin=xmin)) +
geom_rect(colour="grey30") +
coord_polar(theta="y") +
geom_text(inherit.aes = F,
x=c(-1,1),y=0,
data = cs.pvalue,aes(label = paste(method,
"\n", format(p.value,scientific = T,digits = 2))))+
xlim(c(0, 6)) +
theme_bw() +
theme(panel.grid=element_blank()) +
theme(axis.text=element_blank()) +
theme(axis.ticks=element_blank(),
panel.border = element_blank()) +
labs(title="Gráfico Doughnut") +
scale_fill_brewer(palette = "Set1") +
scale_alpha_discrete(range = c(0.5,0.9))
p2
pie1<-c(3,6,5,4,7,8,9,1,4)
pie2<-list(0:3,1:6,2:5,1:4,0:7,4:8,2:9,0:1,0:4)
pie3<-sample(10:60,36)
pie4<-list(sort(sample(1:60,8)))
for(sector in 2:36) pie4[[sector]]<-sort(sample(1:60,8))
par(radial.pie(pie1,labels=LETTERS[1:9]))
library(plotrix)
iucn.df<-data.frame(area=c("África","Ásia","Europa","América do Norte",
"América do Sul","Oceania"),threatened=c(5994,7737,1987,4716,5097,2093))
fan.plot(iucn.df$threatened,max.span=pi,
labels=paste(iucn.df$area,iucn.df$threatened,sep="-"),
main="Espécies ameaçadas por continente (fan.plot)",ticks=276)
library(packcircles)
library(ggplot2)
continente <- circleProgressiveLayout(iucn.df)
dat1 <- circleLayoutVertices(continente)
ggplot(data = dat1) +
geom_polygon(aes(x, y, group = id, fill = factor(id)),
colour = "black",
show.legend = FALSE) +
scale_fill_manual(values = iucn.df$area) +
scale_y_reverse() +
coord_equal()
#########################################################################################
library(RColorBrewer)
#display.brewer.all()
COR6<-brewer.pal(6,"YlGnBu")
library(bubbles)
bubbles(value = iucn.df$threatened,
color = COR6,
label = iucn.df$area,
width=800, height=800)
#########################################################################################
t <- theme_bw() +
theme(panel.grid = element_blank(),
axis.text=element_blank(),
axis.ticks=element_blank(),
axis.title=element_blank())
theme_set(t)
# circle areas
areas <- 1:1000
# arrange circles from small to large
packing1 <- circleProgressiveLayout(areas)
dat1 <- circleLayoutVertices(packing1)
# arrange same circles from large to small
packing2 <- circleProgressiveLayout( rev(areas) )
dat2 <- circleLayoutVertices(packing2)
dat <- rbind(
cbind(dat1, set = 1),
cbind(dat2, set = 2) )
ggplot(data = dat, aes(x, y)) +
geom_polygon(aes(group = id, fill = -id),
colour = "black", show.legend = FALSE) +
scale_fill_distiller(palette = "RdGy") +
coord_equal() +
facet_wrap(~set,
labeller = as_labeller(
c('1' = "small circles first",
'2' = "big circles first"))
)
Clique aqui para voltar a página principal.