library(tidyverse)
library(modeldata)

# the dataset
View(crickets)

# basic scatter plot
ggplot(crickets, aes(x = temp,
                     y = rate,
                     color = species)) +
  geom_point() + 
  labs(x = "Termperature",
       y = "Chirp Rate",
       color = "Species",
       title = "Cricket Chripts",
       caption = "Source: McDonal (2009)") +
  scale_color_brewer(palette = "Dark2")

# modifying basic properties of the plot 
ggplot(crickets, aes(x = temp,
                     y = rate)) +
  geom_point(color = "red",
             size = 2,
             shape = "square") + 
  labs(x = "Termperature",
       y = "Chirp Rate",
       title = "Cricket Chripts",
       caption = "Source: McDonal (2009)") +
  scale_color_brewer(palette = "Dark2")

# learn more about the options for the geom
# with ?geom_point

# adding another layer like a regression line
ggplot(crickets, aes(x = temp,
                     y = rate)) +
  geom_point() + 
  geom_smooth(method = "lm",
              se = FALSE) +
  labs(x = "Termperature",
       y = "Chirp Rate",
       title = "Cricket Chripts",
       caption = "Source: McDonal (2009)") +
  scale_color_brewer(palette = "Dark2")

# adding another regression line per species
ggplot(crickets, aes(x = temp,
                     y = rate,
                     color = species)) +
  geom_point() + 
  geom_smooth(method = "lm",
              se = FALSE) +
  labs(x = "Termperature",
       y = "Chirp Rate",
       title = "Cricket Chripts",
       caption = "Source: McDonal (2009)") +
  scale_color_brewer(palette = "Dark2") +
  theme_light()

# other plots like histograms and frequency poly
ggplot(crickets, aes(x = rate)) +
  geom_histogram(bins = 15) # one quantitative variable

# frequency polynome
ggplot(crickets, aes(x = rate)) +
  geom_freqpoly(bins = 15) 

# bar plot with fill color according to species, no legend
ggplot(crickets, aes(x = species,
                     fill = species)) + 
  geom_bar(show.legend = FALSE) +
  scale_fill_brewer(palette = "Dark2")

# boxplot with color equal to species
ggplot(crickets, aes(x = species,
                     y = rate,
                     color = species)) +
  geom_boxplot(show.legend = FALSE) +
  scale_color_brewer(palette = "Dark2") +
  theme_minimal()

# facetign (side by side)
# show the differnce between species

# not great:
ggplot(crickets, aes(x = rate,
                     fill = species)) +
  geom_histogram(bins = 15) +
  scale_fill_brewer(palette = "Dark2")

# better style
ggplot(crickets, aes(x = rate,
                     fill = species)) +
  geom_histogram(bins = 15,
                 show.legend = FALSE) +
  facet_wrap(~species,
             ncol = 1) +
  scale_fill_brewer(palette = "Dark2")
