Z é para eixos adicionais

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon Profundamente Trivial, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.

Aqui estamos no último post do blog A a Z! Hoje, quero falar sobre a adição de eixos adicionais ao seu ggplot, usando as opções de preenchimento ou cor. Embora esses não sejam eixos z verdadeiros no sentido geométrico, penso neles como um terceiro eixo z.

Alguns de vocês podem se surpreender ao saber que preenchimento e cor são diferentes e que podem usar um ou ambos em um determinado gráfico.

Cor refere-se ao contorno do objeto (barra, cunha por partes, etc.), enquanto preenchimento refere-se à parte interna do objeto. Para gráficos de dispersão, a forma padrão não possui preenchimento; portanto, basta usar a cor para alterar a aparência desses pontos.

Vamos recriar as páginas lidas no gráfico de 2019, mas desta vez, usarei apenas livros de ficção e os separarei como fantasia ou outra ficção; isso divide esse conjunto de dados de maneira uniforme pela metade. Veja como eu geraria as páginas lidas ao longo do tempo separadamente por essas duas categorias de gênero.

## -- Attaching packages ------------------------------------------- tidyverse 1.3.0 --
##  ggplot2 3.2.1      purrr   0.3.3
## tibble 2.1.3 dplyr 0.8.3
## tidyr 1.0.0 stringr 1.4.0
## readr 1.3.1 forcats 0.4.0
## -- Conflicts ---------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
reads2019  read_csv("~/Downloads/Blogging A to Z/SaraReads2019_allchanges.csv",
col_names = TRUE)
## Parsed with column specification:
## cols(
## Title = col_character(),
## Pages = col_double(),
## date_started = col_character(),
## date_read = col_character(),
## Book.ID = col_double(),
## Author = col_character(),
## AdditionalAuthors = col_character(),
## AverageRating = col_double(),
## OriginalPublicationYear = col_double(),
## read_time = col_double(),
## MyRating = col_double(),
## Gender = col_double(),
## Fiction = col_double(),
## Childrens = col_double(),
## Fantasy = col_double(),
## SciFi = col_double(),
## Mystery = col_double(),
## SelfHelp = col_double()
## )
fantasy  reads2019 %>%
filter(Fiction == 1) %>%
mutate(date_read = as.Date(date_read, format = '%m/%d/%Y'),
Fantasy = factor(Fantasy, levels = c(,1),
labels = c("Other Fiction",
"Fantasy"))) %>%
group_by(Fantasy) %>%
mutate(GenreRead = order_by(date_read, cumsum(Pages))) %>%
ungroup()

Agora, bastava inserir essas informações no meu código ggplot, mas adicionar uma terceira variável na estética (aes) para ggplot – color = Fantasy.

## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
myplot  fantasy %>%
ggplot(aes(date_read, GenreRead, color = Fantasy)) +
geom_point() +
xlab("Date") +
ylab("Pages") +
scale_x_date(date_labels = "%b",
date_breaks = "1 month") +
scale_y_continuous(labels = comma, breaks = seq(,30000,5000)) +
labs(color = "Genre of Fiction")

Esse gráfico usa o esquema de cores R padrão. Eu poderia mudar essas cores usando um esquema de cores existente ou definir o meu. Vamos fazer uma figura de estilo de trinta e oito, usando o tema para a trama geral e o esquema de cores para a variável de gênero.

## Warning: package 'ggthemes' was built under R version 3.6.3
myplot +
scale_color_fivethirtyeight() +
theme_fivethirtyeight()
Leia Também  Instale o R sem suporte para longas dobras (noLD) no Ubuntu

Também posso especificar minhas próprias cores.

myplot +
scale_color_manual(values = c("#4b0082","#ffd700")) +
theme_minimal()

O geom_point oferece muitas formas de pontos; 21-25 permitem especificar cor e preenchimento. Mas para o resto, use apenas cores.

## Warning: package 'ggpubr' was built under R version 3.6.3
## Loading required package: magrittr
## 
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
ggpubr::show_point_shapes()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.

Obviamente, você pode ter gráficos em que é melhor alterar o preenchimento, como em um gráfico de barras. No meu exemplo resumido, criei um gráfico de barras empilhadas de ficção versus não ficção com o gênero do autor como preenchimento.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
reads2019 %>%
mutate(Gender = factor(Gender, levels = c(,1),
labels = c("Male",
"Female")),
Fiction = factor(Fiction, levels = c(,1),
labels = c("Non-Fiction",
"Fiction"),
ordered = TRUE)) %>%
group_by(Gender, Fiction) %>%
summarise(Books = n()) %>%
ggplot(aes(Fiction, Books, fill = reorder(Gender, desc(Gender)))) +
geom_col() +
scale_fill_economist() +
xlab("Genre") +
labs(fill = "Author Gender")

Empilhamento é o padrão, mas eu também poderia ter as barras próximas uma da outra.

reads2019 %>%
mutate(Gender = factor(Gender, levels = c(,1),
labels = c("Male",
"Female")),
Fiction = factor(Fiction, levels = c(,1),
labels = c("Non-Fiction",
"Fiction"),
ordered = TRUE)) %>%
group_by(Gender, Fiction) %>%
summarise(Books = n()) %>%
ggplot(aes(Fiction, Books, fill = reorder(Gender, desc(Gender)))) +
geom_col(position = "dodge") +
scale_fill_economist() +
xlab("Genre") +
labs(fill = "Author Gender")

Você também pode usar preenchimento (ou cor) com a mesma variável usada para x ou y; isto é, em vez de ter uma terceira escala, ele poderia adicionar um pouco de cor e separação para distinguir categorias da variável x ou y. Isso é especialmente útil se você tiver várias categorias sendo plotadas, pois ajuda a quebrar a parede de barras. Se você fizer isso, recomendo escolher uma paleta de cores com cores altamente complementares, em vez de cores altamente contrastantes; você provavelmente também deseja soltar a legenda, já que o eixo também será rotulado.

genres  reads2019 %>%
group_by(Fiction, Childrens, Fantasy, SciFi, Mystery) %>%
summarise(Books = n())

genres genres %>%
bind_cols(Genre = c("Non-Fiction",
"General Fiction",
"Mystery",
"Science Fiction",
"Fantasy",
"Fantasy Sci-Fi",
"Children's Fiction",
"Children's Fantasy"))

genres %>%
filter(Genre != "Non-Fiction") %>%
ggplot(aes(reorder(Genre, -Books), Books, fill = Genre)) +
geom_col() +
xlab("Genre") +
scale_x_discrete(labels=function(x){sub("\s", "n", x)}) +
scale_fill_economist() +
theme(legend.position = "none")

Se você tem apenas algumas categorias e deseja desenhar um contraste, é quando você pode usar tons contrastantes: por exemplo, no trabalho, quando planto desempenho em um item, uso vermelho para incorreto e azul para correto, para maximizar o contraste entre os dois níveis de desempenho para quaisquer dados que estou apresentando.

Leia Também  Quebra-cabeça Le Monde [#1133] | R-bloggers

Espero que tenham gostado desta série! Há muito mais que você pode fazer com o arrumado do que eu cobri este mês. Espero que isso tenha lhe dado o suficiente para começar e despertado seu interesse em saber mais. Mais uma vez, eu recomendo conferir R para Ciência de Dados.



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha o seu sabor: o email, Twitter, RSS ou facebook …



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br