1

I made several plots from my data. I made two plots for each column based on the column called treatment. One column for treatment 1_1 until treatment 1_4 and one plot for original sample from original sample 1 to original sample 5

sample code:

 df <- structure(
    list(
      Bacteroidaceae = c(
        0,
        0.10944999,
        0.104713314,
        0.125727668,
        0.124136247,
        0.005155911,
        0.005072778,
        0.010231826,
        0.010188139),
      Christensenellaceae = c(
        0,
        0.009910731,
        0.010131195,
        0.009679938,
        0.01147601,
        0.010484508,
        0.008641566,
        0.010017172,
        0.010741488),
      
      Treatment = c(
        "Original Sample1",
        "Original Sample2",
        "Original Sample3",
        "Original Sample4",
        "Original Sample5",
        "treatment1_1",
        "treatment1_2",
        "treatment1_3",
        "treatment1_4")
    ),
    class = "data.frame",
    row.names = c(NA,-9L)
  )

The code i used to create the plot:

df$Treatment <- factor(c("Original sample1", "Original sample2", "Original sample3", "Original sample4", "Original sample5",
                         "treatment1_1","treatment1_2","treatment1_3","treatment1_4"),
                levels = c("Original sample1", "Original sample2", "Original sample3",
                           "Original sample4","Original sample5","treatment1_1","treatment1_2",
                           "treatment1_3","treatment1_4"))



df %>% 
  pivot_longer(-Treatment) %>% 
  mutate(plot = ifelse(str_detect(Treatment, "Original"), 
                       "Original Sample", 
                       "treatment1"),
         treatment = str_extract(Treatment, "\\d+$")) %>% 
  group_by(name) %>% 
  group_split() %>% 
  map(~.x %>% ggplot(aes(x = factor(Treatment), y = value, color = factor(name))) +
        geom_point() +
        facet_wrap(~plot) +
        labs(x = "Treatment", y = "Value", color = "Taxa") +
        theme_bw())

Example of plot based on my code : enter image description here

As you can observe the X line is difficult to read . Is there a way to fix this?

Rfanatic
  • 2,224
  • 1
  • 5
  • 21
Eliza R
  • 125
  • 1
  • 10

1 Answers1

0

I changed the font size and rotated the x label. Also, I updated your sample data as in the original form you did not capture the treatment1_4 (from your sample data check row.names as= c(NA,-8L) it should be row.names as= c(NA,-9L))

library(dplyr)
library(tidyr)
library(purrr)
library(stringr)

df <- structure(
    list(
      Bacteroidaceae = c(
        0,
        0.10944999,
        0.104713314,
        0.125727668,
        0.124136247,
        0.005155911,
        0.005072778,
        0.010231826,
        0.010188139),
      Christensenellaceae = c(
        0,
        0.009910731,
        0.010131195,
        0.009679938,
        0.01147601,
        0.010484508,
        0.008641566,
        0.010017172,
        0.010741488),
      
      Treatment = c(
        "Original Sample1",
        "Original Sample2",
        "Original Sample3",
        "Original Sample4",
        "Original Sample5",
        "treatment1_1",
        "treatment1_2",
        "treatment1_3",
        "treatment1_4")
    ),
    class = "data.frame",
    row.names = c(NA,-9L)
  )


  df$Treatment <- factor(c("Original sample1", "Original sample2", "Original sample3", "Original sample4", "Original sample5",
                           "treatment1_1","treatment1_2","treatment1_3","treatment1_4"),
                  levels = c("Original sample1", "Original sample2", "Original sample3",
                             "Original sample4","Original sample5","treatment1_1","treatment1_2",
                             "treatment1_3","treatment1_4"))


df<-as.data.frame(df)
df %>% 
  pivot_longer(-Treatment) %>% 
  mutate(plot = ifelse(str_detect(Treatment, "Original"), 
                       "Original Sample", 
                       "Treatment"),
         treatment = str_extract(Treatment, "\\d+$")) %>% 
  group_by(name) %>% 
  group_split() %>% 
  map(~.x %>% ggplot(aes(x = factor(Treatment), y = value, color = factor(name))) +
        geom_point(size=5) +
        facet_wrap(~plot) +
        labs(x = "Treatment", y = "Value", color = "Taxa") +
        
        theme_bw()+
        theme(plot.title = element_text(hjust = 0.5,  face="bold", size=20, color="black")) + 
        theme(axis.title.x = element_text(family="Times", face="bold", size=16, color="black"))+
        theme(axis.title.y = element_text(family="Times", face="bold", size=16, color="black"))+
        theme(axis.text.x = element_text( angle=90,hjust = 1,  face="bold", size=14, color="black") )+
        theme(axis.text.y = element_text( hjust = 1,  face="bold", size=14, color="black") )+
        theme(plot.title = element_text(hjust = 0.5))+
        theme(legend.title = element_text(family="Times", color = "black", size = 16,face="bold"),
              legend.text = element_text(family="Times", color = "black", size = 14,face="bold"),
              legend.position="right",
              plot.title = element_text(hjust = 0.5),
              strip.text = element_text(size = 18)))

enter image description here

Rfanatic
  • 2,224
  • 1
  • 5
  • 21