Vamos usar um banco de dados que já está no R, USArrests, que consiste de variáveis sobre a taxa de criminalidade para cada 100 mil habitantes por estado americano. Vamos carregar esse banco de dados e verificar algumas informações simples.

#install.package{"ggplot2"}
library(ggplot2)
#carregar conjunto de dados USArrests
data(USArrests)
mydata = USArrests
#ver a dimensão do banco de dados
dim(mydata)
## [1] 50  4
head(mydata) #seis primeiras linhas
##            Murder Assault UrbanPop Rape
## Alabama      13.2     236       58 21.2
## Alaska       10.0     263       48 44.5
## Arizona       8.1     294       80 31.0
## Arkansas      8.8     190       50 19.5
## California    9.0     276       91 40.6
## Colorado      7.9     204       78 38.7
tail(mydata) #seis últimas linhas
##               Murder Assault UrbanPop Rape
## Vermont          2.2      48       32 11.2
## Virginia         8.5     156       63 20.7
## Washington       4.0     145       73 26.2
## West Virginia    5.7      81       39  9.3
## Wisconsin        2.6      53       66 10.8
## Wyoming          6.8     161       60 15.6
summary(mydata) # sumário estatístico do conjunto de dados
##      Murder          Assault         UrbanPop          Rape      
##  Min.   : 0.800   Min.   : 45.0   Min.   :32.00   Min.   : 7.30  
##  1st Qu.: 4.075   1st Qu.:109.0   1st Qu.:54.50   1st Qu.:15.07  
##  Median : 7.250   Median :159.0   Median :66.00   Median :20.10  
##  Mean   : 7.788   Mean   :170.8   Mean   :65.54   Mean   :21.23  
##  3rd Qu.:11.250   3rd Qu.:249.0   3rd Qu.:77.75   3rd Qu.:26.18  
##  Max.   :17.400   Max.   :337.0   Max.   :91.00   Max.   :46.00
names(mydata) #nomes das variáveis
## [1] "Murder"   "Assault"  "UrbanPop" "Rape"
row(mydata) #nomes dos estados norte-americanos
##       [,1] [,2] [,3] [,4]
##  [1,]    1    1    1    1
##  [2,]    2    2    2    2
##  [3,]    3    3    3    3
##  [4,]    4    4    4    4
##  [5,]    5    5    5    5
##  [6,]    6    6    6    6
##  [7,]    7    7    7    7
##  [8,]    8    8    8    8
##  [9,]    9    9    9    9
## [10,]   10   10   10   10
## [11,]   11   11   11   11
## [12,]   12   12   12   12
## [13,]   13   13   13   13
## [14,]   14   14   14   14
## [15,]   15   15   15   15
## [16,]   16   16   16   16
## [17,]   17   17   17   17
## [18,]   18   18   18   18
## [19,]   19   19   19   19
## [20,]   20   20   20   20
## [21,]   21   21   21   21
## [22,]   22   22   22   22
## [23,]   23   23   23   23
## [24,]   24   24   24   24
## [25,]   25   25   25   25
## [26,]   26   26   26   26
## [27,]   27   27   27   27
## [28,]   28   28   28   28
## [29,]   29   29   29   29
## [30,]   30   30   30   30
## [31,]   31   31   31   31
## [32,]   32   32   32   32
## [33,]   33   33   33   33
## [34,]   34   34   34   34
## [35,]   35   35   35   35
## [36,]   36   36   36   36
## [37,]   37   37   37   37
## [38,]   38   38   38   38
## [39,]   39   39   39   39
## [40,]   40   40   40   40
## [41,]   41   41   41   41
## [42,]   42   42   42   42
## [43,]   43   43   43   43
## [44,]   44   44   44   44
## [45,]   45   45   45   45
## [46,]   46   46   46   46
## [47,]   47   47   47   47
## [48,]   48   48   48   48
## [49,]   49   49   49   49
## [50,]   50   50   50   50

Você já sabe, mas vamos relembrar, que para saber mais sobre o banco de dados, basta usar o comando help(USArrests).

help(USArrests)

Temos um conjunto de dados em cross-section (ou seja, observações de várias unidades - estados em único período de tempo, 1973). Nesse caso, podemos fazer um gráfico de distribuição de frequência, ou seja, um histograma. Podemos ver, por exemplo, a frequência de assassinatos por estado. Já vimos que ggplot funciona em camadas e nesse caso iremos usar geom_hist() para contar as frequências.

g1 = ggplot(data = mydata) +
geom_histogram(mapping = aes(x = Murder))
g1
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Gráfico de densidade usando kernel gaussiano:

g2 = ggplot(data = mydata) +
geom_density(mapping = aes(x = Murder), kernel = 'gaussian')
g2

Diagrama de caixa ou box-plot (quartis da distribuição, onde podemos analisar a dispersão da variável)

g3 = ggplot(data = mydata) +
geom_boxplot(mapping = aes(x = 1, y = Murder))
g3

Temos também o violin-plot, que segue o mesmo princípio do box-plot, mas é uma combinação deste com um gráfico de densidade.

ggplot(data = mydata) +
geom_violin(mapping = aes(x = 1, y = Murder))

Podemos também facilmente colocar títulos, subtítulos, etc nos nossos gráficos. Vejamos como fazer isso através do exemplo a seguir. Vamos construir o histograma agora para a variável assaltos (Assault), adicionando os títulos:

ggplot(data = USArrests) +
geom_histogram(mapping = aes(x = Assault), bins = 10) +
labs(x = 'Assaltos para cada 100 mil habitantes',
y = 'Frequencia',
title = 'Assaltos em Estados Americanos')

Podemos também alterar as cores das barras, usando o comando fill dentro de geom_histogram. Vejamos:

ggplot(data = USArrests) +
geom_histogram(mapping = aes(x = Assault), bins = 10, fill ='blue') +
labs(x = 'Assaltos para cada 100 mil habitantes',
y = 'Frequencia',
title = 'Assaltos em Estados Americanos')

Para mudar as cores das bordas, usamos o comando color:

ggplot(data = USArrests) +
geom_histogram(mapping = aes(x = Assault), bins = 10, fill ='blue', color='black') +
labs(x = 'Assaltos para cada 100 mil habitantes',
y = 'Frequencia',
title = 'Assaltos em Estados Americanos')

Podemos também alterar o número de barras usando o comando bins (o default é 30):

ggplot(data = USArrests) +
geom_histogram(mapping = aes(x = Assault), bins = 4, fill ='blue', color='black') +
labs(x = 'Assaltos para cada 100 mil habitantes',
y = 'Frequencia',
title = 'Assaltos em Estados Americanos')

Se usarmos o comando fill = rainbow, teremos as barras preenchidas com 4 cores do arco-íris. Vejamos:

ggplot(data = USArrests) +
geom_histogram(mapping = aes(x = Assault), bins = 4, fill =rainbow(4), color='black') +
labs(x = 'Assaltos para cada 100 mil habitantes',
y = 'Frequencia',
title = 'Assaltos em Estados Americanos')

______________________________________________________

Podemos personalizar também o box-plot que fizemos para asssassinatos. Novamente, colour muda a cor do contorno e fill muda a cor do preenchimento.

ggplot(data = USArrests) +
geom_boxplot(mapping = aes(x = 1, y = Murder), color = 'red', fill = 'pink')

____________________________________________________________

Para terminar, vamos fazer um gráfico de dispersão a fim de verificar como o nível de assassinatos se relaciona com o tamanho da população urbana.

ggplot(mydata, aes(x = UrbanPop, y = Murder)) +
geom_point(color='blue', size=4) +
labs(y = "Assassinatos",
x = "População Urbana",
title = "Relação entre assassinatos e População Urbana")