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  Incidência de COVID-19 no Texas após o ajuste para a positividade do teste por @ ellis2013nz

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  Aspect Enterprise Solutions ganha quatro prêmios internacionais ACQ5 por sucesso comercial em commodities

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