Microsoft Copilot was able to help me sort thoguh my results by demonstrating where exactly the information was coming from, and how to align my results. It organized the totality of the information of left and right leaning outlets and emphasized finding the totals for both sides.

For the left leaning news outlets, Supreme Court, Iran War and Natalie Harp were some of the most common terms that were seen in its chart. This makes sense because left-leaning outlets are naturally going to be more critical of Donald Trump and will bring up topics that question his leadership to some degree. These topics reflect that with things that could be considered controversial to Trump. Supreme Court was most popular around the first of September while it has flatlined to some degree since. The Iran War was very higly reporterted and spiked around the middle of September.

For the right leaning outlets, Newsmax is the top term while El Sayed is in 2nd nad Supreme Court is at 3rd. While there are common terms that are brought up, the key differences at the top are glaring. Newsmax is a right-leaning news organization for the most part, so once agian that oberservation makes sense. El Sayed is a largely known left-leaning candidate for Senae that catches a lot of negative publicity with right-leaning individuals. NewsMax peaked back in August while it has flatlined since. El Sayed was high at the top of August, but has been on a steady decline since.

My graphs are featured below demonstrating this reality.

Code

Here is the code for these graphs featured below.

ggplot(
  chart_data,
  aes(
    x = reorder_within(
      ngram,
      n,
      ideology
    ),
    y = n,
    fill = ideology
  )
) +
  geom_col(
    show.legend = FALSE
  ) +
  coord_flip() +
  scale_x_reordered() +
  facet_wrap(
    ~ ideology,
    ncol = 1,
    scales = "free_y"
  )
ggplot(
  right_weekly,
  aes(
    x = WeekStart,
    y = weekly_count,
    height = weekly_count
  )
) +
  geom_ridgeline(
    fill = "firebrick",
    color = "white",
    alpha = .85,
    scale = 1
  ) +
  facet_wrap(
    ~ ngram,
    ncol = 1,
    scales = "free_y",
    strip.position = "right"
  ) +
  theme_ridges() +
theme(
  strip.text.y.right =
    element_text(
      size = 10,
      angle = 0
    ),
  axis.text.y =
    element_blank(),
  axis.ticks.y =
    element_blank(),
  axis.title.y =
    element_blank(),
  panel.spacing =
    unit(
      .15,
      "lines"
    ),
  legend.position =
    "none"
)
left_top <- ngrams_final %>%
  filter(ideology == "Left") %>%
  count(ngram, sort = TRUE) %>%
  slice_max(
    n,
    n = 20,
    with_ties = FALSE
  )

left_weekly <- weekly_ngram_counts %>%
  filter(ideology == "Left") %>%
  semi_join(
    left_top,
    by = "ngram"
  )

left_order <- left_top %>%
  arrange(desc(n)) %>%
  pull(ngram)

left_weekly <- left_weekly %>%
  mutate(
    ngram = factor(
      ngram,
      levels = left_order
    )
  )

ggplot(
  left_weekly,
  aes(
    x = WeekStart,
    y = weekly_count,
    height = weekly_count
  )
) +
  geom_ridgeline(
    fill = "steelblue",
    color = "white",
    alpha = .8,
    scale = 1
  ) +
  facet_wrap(
    ~ ngram,
    ncol = 1,
    scales = "free_y",
    strip.position = "right"
  ) +
  labs(
    title = paste(
      "Weekly Volume of Top 20",
      n_size,
      "-Word Phrases: Left-Leaning Outlets"
    ),
    x = "Week",
    y = NULL
  ) +
  theme_ridges() +
  theme(
    strip.text.y.right =
      element_text(
        size = 10,
        angle = 0
      ),
    axis.text.y =
      element_blank(),
    axis.ticks.y =
      element_blank(),
    panel.spacing =
      unit(
        .15,
        "lines"
      ),
    legend.position =
      "none"
  )