[R-br] Texto na margem do ggplot

Deisy Gysi deisygysi em gmail.com
Qui Fev 3 12:59:36 -03 2022


Nao tenho certeza se entendi exatamente o que vc quer fazer...
Mas para colocar os titulos nas margens vc pode criar novos eixos (x e y).

att,
d

require(ggplot2)
require(magrittr)
require(dplyr)

x <- rbind(
  data.frame(id = 1:20,
             Visita = "Visita 1",
             Inicial = "Vacina 1",
             Reforço = "Vacina 1",
             Titulos =  rnorm(20, 20, 5)),
  data.frame(id = 1:20,
             Visita = "Visita 2",
             Inicial = "Vacina 1",
             Reforço = "Vacina 1",
             Titulos =  rnorm(20, 30, 5)),
  #
  data.frame(id = 21:40,
             Visita = "Visita 1",
             Inicial = "Vacina 2",
             Reforço = "Vacina 1",
             Titulos =  rnorm(20, 40, 5)),
  data.frame(id = 21:40,
             Visita = "Visita 2",
             Inicial = "Vacina 2",
             Reforço = "Vacina 1",
             Titulos =  rnorm(20, 50, 5)),
  #
  data.frame(id = 41:60,
             Visita = "Visita 1",
             Inicial = "Vacina 1",
             Reforço = "Vacina 2",
             Titulos =  rnorm(20, 15, 5)),
  data.frame(id = 41:60,
             Visita = "Visita 2",
             Inicial = "Vacina 1",
             Reforço = "Vacina 2",
             Titulos =  rnorm(20, 30, 5)),
  #
  data.frame(id = 61:80,
             Visita = "Visita 1",
             Inicial = "Vacina 2",
             Reforço = "Vacina 2",
             Titulos =  rnorm(20, 15, 5)),
  data.frame(id = 61:80,
             Visita = "Visita 2",
             Inicial = "Vacina 2",
             Reforço = "Vacina 2",
             Titulos =  rnorm(60, 30, 5)))
head(x)
# Fazendo o grafico...
x %<>%
  mutate(Visita_cat = as.numeric(as.factor(Visita)))
x %>%
  ggplot() +
  aes(x = Visita_cat,
      y = Titulos,
      group = id)+
  geom_line(colour = "lightgreen",
            show.legend = FALSE) +
  geom_smooth(aes(group = 1),
              method = lm,
              colour = "red",
              na.rm = TRUE) +
  facet_grid(rows = vars(Inicial),
             cols = vars(Reforço))+
  scale_y_continuous(sec.axis = dup_axis(name = "Reforço")) +
  scale_x_continuous(sec.axis = dup_axis(name = "Esquema inicial")) +
  theme_light() +
  theme(axis.title.x.top = element_text())+
  labs(y = "Titulos de anticorpos",
       x = "Visitas de seguimento")


plot(as.numeric(x$Visita_cat), x$Titulos, type = "l")
mtext("Esquema inicial", side = 3)
mtext("Reforço", side = 4)


Deisy Morselli Gysi, PhD

Associate Research Scientist
Center for Complex Networks Research - BarabasiLab
<https://www.barabasilab.com/>
Northeastern University, Boston, Massachusetts
Pronouns: She/Her/Hers
deisy.ccnr em gmail.com
https://deisygysi.github.io/

The flower that blooms in adversity is the most rare and beautiful of all.
Mulan (Disney)

Email Etiquette: Just because I e-mail at odd hours does not mean I expect
you to.


On Thu, 3 Feb 2022 at 08:04, Pedro Emmanuel Alvarenga Americano do Brasil
por (R-br) <r-br em listas.c3sl.ufpr.br> wrote:

> Amigos de R,
>
> Saudações a todos. Gostaria de colocar um texto nas margens superior e
> direita do gráfico de tal forma que eu consiga diferenciar duas variáveis
> que têm as mesmas categorias. No graphics seria equivalente a função
> mtext(). Por exemplo...
> plot(bla bla bla)
> mtext("Esquema inicial", side = 3)
> mtext("Reforço", side = 4)
>
> Mas no ggplot não estou sabendo fazer. Alguma luz?
> # Simulando os dados
> x <- rbind(
> data.frame(id = 1:20,
>            Visita = "Visita 1",
>            Inicial = "Vacina 1",
>            Reforço = "Vacina 1",
>            Titulos =  rnorm(20, 20, 5)),
> data.frame(id = 1:20,
>            Visita = "Visita 2",
>            Inicial = "Vacina 1",
>            Reforço = "Vacina 1",
>            Titulos =  rnorm(20, 30, 5)),
> #
> data.frame(id = 21:40,
>            Visita = "Visita 1",
>            Inicial = "Vacina 2",
>            Reforço = "Vacina 1",
>            Titulos =  rnorm(20, 40, 5)),
> data.frame(id = 21:40,
>            Visita = "Visita 2",
>            Inicial = "Vacina 2",
>            Reforço = "Vacina 1",
>            Titulos =  rnorm(20, 50, 5)),
> #
> data.frame(id = 41:60,
>            Visita = "Visita 1",
>            Inicial = "Vacina 1",
>            Reforço = "Vacina 2",
>            Titulos =  rnorm(20, 15, 5)),
> data.frame(id = 41:60,
>            Visita = "Visita 2",
>            Inicial = "Vacina 1",
>            Reforço = "Vacina 2",
>            Titulos =  rnorm(20, 30, 5)),
> #
> data.frame(id = 61:80,
>            Visita = "Visita 1",
>            Inicial = "Vacina 2",
>            Reforço = "Vacina 2",
>            Titulos =  rnorm(20, 15, 5)),
> data.frame(id = 61:80,
>            Visita = "Visita 2",
>            Inicial = "Vacina 2",
>            Reforço = "Vacina 2",
>            Titulos =  rnorm(60, 30, 5)))
> head(x)
> # Fazendo o grafico...
> ggplot(x,
>        aes(x = Visita,
>            y = Titulos,
>            group = id)) +
>   geom_line(colour = "lightgreen",
>             show.legend = FALSE) +
>   geom_smooth(aes(group = 1),
>               method = lm,
>               colour = "red",
>               na.rm = TRUE) +
>   facet_grid(rows = vars(Inicial),
>              cols = vars(Reforço))+
>   theme_light() +
>   ylab("Titulos de anticorpos") +
>   xlab("Visitas de seguimento")
>
> Abraços fraternos,
>
> Pedro Brasil
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20220203/f672f6e2/attachment.htm>


Mais detalhes sobre a lista de discussão R-br