# -----------------------------------------------------------------------------
# Gráficos
# -----------------------------------------------------------------------------
# Será utilizado a library default do R, a 'Graphics'. Existem outras
# bibliotecas, como: lattice, ggplot2, etc.
x = seq(1, 10)
x
y = 3 + x + rnorm(10)
y
plot(y ~ x)
plot(x, y)
plot(y ~ x,
main = 'Exemplo 1',
xlab = 'Variável x',
ylab = 'Variável y',
col = 'blue',
type = 'l')
colors() # Descobrir as cores disponíveis
demo(colors)
z = 3 + 1.2 * x + rnorm(10)
plot(y ~ x,
main = 'Exemplo 1',
xlab = 'Variável x',
ylab = 'Variável y',
col = 'blue',
type = 'l')
points(z ~ x,
col = 'red',
type = 'l')
# Informando uma posição pré-especificada
legend(x ='topleft',
legend = c('1999',
'2000'),
col = c('blue',
'red'),
lty = c(1,1))
# Ou inforando as coordenadas x e y
legend(x = 7.5,
y = 7.5,
legend = c('1999',
'2000'),
col = c('blue',
'red'),
lty = c(1,2))
text(2,
10,
expression(y == a + b * x))
text(2,
9,
expression(R^2 == 70 ~ '%'))
text(6,5,"Juliana Paes eu te amo")
plot(y ~ x,
axes = FALSE) # Sem os eixos
axis(1) # Eixo x
axis(2) # Eixo y
plot(y ~ x,
ylim = c(0, 15),
xlim = c(0, 20))
# Adicionando linhas ou curvas
u = 2 + x + x^2 + rnorm(10,
0,
3)
plot(u ~ x,
main = 'Exemplo 1',
xlab = 'Variável x',
ylab = 'Variável y')
curve(2 + x + x^2,
1,
10,
add = T,
col = 'red')
curve(3 + x, 1, 10,
add = T,
col = 'blue')
lines(3 + x,
col = 'yellow')
# Gráfico de barras
sexo = rep(c('Mulheres',
'Homens'),
c(56, 12))
fumante = c(rep(c('s',
'n'),
c(10, 13)),
rep(c('s', 'n'),
c(23, 22)))
estadocivil = c(rep(c('solteiro',
'casado'),
c(17, 6)),
rep(c('solteiro',
'casado'),
c(20, 25)))
tabsimp = table(sexo)
tabsimp
barplot(tabsimp)
barplot(tabsimp,col='pink')
tabcr = data.frame(sexo,
fumante)
barplot(table(tabcr),
legend = T) # Como faz para aparecer em duas colunas??
barplot(table(tabcr),
beside = T)
n = 30 # tamanho da amostra
PopA = rnorm(n, 1.73, 0.4)
PopB = rnorm(n, 1.04, 0.6)
mediaA = mean(PopA)
mediaB = mean(PopB)
desvioA= sd(PopA)
desvioB= sd(PopB)
erroA = desvioA/sqrt(n)
erroB = desvioB/sqrt(n)
barplot(c(mediaA,
mediaB),
ylim = c(0, 2))
barplot(c(mediaA,
mediaB),
ylim = c(0, 2),
names.arg = c('PopA', 'PopB'))
# Colocando os erros nas barras. Lembre-se que não tem sentindo colocar o desvio, pois a média +- desvio não quer dizer nada!
# Embora muitos utilizam este tipo de gráfico, ele não está correto, pois BARRAS se utiliza para contagens e não para valores pontuais como a média por exemplo.
gr = barplot(c(mediaA,
mediaB),
ylim = c(0, 3),
names.arg = c('A', 'B'),
ylab = 'Altura (m)')
arrows(gr,
c(mediaA - erroA*1.96,
mediaB - erroB*1.96),
gr,
c(mediaA + erroA*1.96,
mediaB + erroB*1.96),
length = 0.1,
angle = 90,
code = 3)
# Fazendo o gráico acima de modo correto!
plot(c(mediaA,mediaB) ~ c(1,2),
ylim=c(0,2),
pch=16)
arrows(c(1,2),
c(mediaA - erroA*1.96,
mediaB - erroB*1.96),
c(1,2),
c(mediaA + erroA*1.96,
mediaB + erroB*1.96),
length = 0.1,
angle = 90,
code = 3)
tabmul = data.frame(estadocivil,
sexo,
fumante)
tabmul
tabmul1 = with(tabmul, table(sexo, fumante, estadocivil))
tabmul1
plot(tabmul1) # Plota a área proporcional as categorias
plot(tabmul1,
xlab = 'Sexo',
ylab = 'Fumante',
main = '')
proptab = prop.table(tabmul1,margin=2)
plot(proptab)
# Gráfico em pizza
pie(tabsimp)
tabsimp1 = prop.table(tabsimp) * 100
pie(tabsimp1)
text(-0.4,
-0.1,
'82,35%')
text(0.4,
0.3,
'17,65%')
# Podemos colar as percentagens interativamente. Vejam:
pie(tabsimp1)
text(locator(),,c('82,35%','17,65%'))# Assim que executar esta linha, clique no gráfico as áreas onde deseja colocar os valores. Em seguida, clique com o botão direito do mouse para finalizar.
# Box-plot
xx = rnorm(100)
boxplot(xx)
boxplot(xx,
horizontal = TRUE)
yy = rpois(50, 3)
boxplot(yy,
horizontal = TRUE)
xx1 = rnorm(100)
xx1[67] = 10
boxplot(xx1)
identify(rep(1,
length(xx1)),
xx1)#Clique em cima do outlier para ver em qual posição ele está na base de dados (ou vetor). Em seguida, clique com o botão direito do mouse para finalizar.
install.packages('car')
library(car)
Boxplot(xx1)
# Adicionando a média no boxplot
media = mean(xx)
boxplot(xx)
axis(1)#para ver a posição do eixo x
segments(0.8,media,1.2,media,col='red',lwd=2)
# Mais de um gráfico em uma mesma janela
y = rnorm(100)
x = rnorm(100)
par(mfrow = c(1, 2)) # mfrow = c(n,p) - n: é o número de linhas; p: é o número de colunas
plot(y ~ x)
boxplot(x)
par(mfrow = c(1, 2), bg = 'black')
plot(y ~ x,
col = 'yellow',
col.axis = 'yellow',
col.lab = 'yellow',
fg = 'yellow')
boxplot(x,
col = 'black',
yaxt = 'n',
border = 'red',
frame.plot=FALSE)
axis(2,col.axis = 'red', col.ticks='red')
box(col='red')
# par(mfrow=c(1,2), oma=c(1,1,1,1), # altera as larguras das margens da janela
# gráfica c(inferior,esquerda,superior,direita) mar=c(0,10,0,0))# altera as
# larguras das margens das caixas gráficas
# c(inferior,esquerda,superior,direita)
par() # Para maiores detalhes!!
z = rnorm(100)
par(mfrow=c(2,2))
plot(y ~ x)
plot(z ~ x)
boxplot(xx)
#layout
layout(matrix(seq(1, 4),
ncol = 2))
plot(y ~ x,col='red')
plot(z ~ x,col='blue')
boxplot(xx)
layout(matrix(c(1, 2, 3, 3),
ncol = 2))
plot(y ~ x)
plot(z ~ x)
boxplot(xx)
layout(matrix(c(1,2,3,2),ncol=2))
plot(y ~ x)
plot(z ~ x)
boxplot(xx)
layout(matrix(c(1, 1, 2, 3),
ncol = 2,
byrow = T))
plot(y ~ x)
plot(z ~ x)
boxplot(x)
# -----------------------------------------------------------------------------
# Salvando gráficos
# -----------------------------------------------------------------------------
pdf('g1.pdf')
plot(1:5, 1:5)
dev.off()
tiff('g2.tiff')
plot(1:5, 1:5)
dev.off()
tiff('g3.tiff',
width = 250,
height = 250)
plot(1:5, 1:5)
dev.off()
?tiff # Para maiores detalhes