Crime in Victoria – Data Story

Shreya Attili

Overview

Welcome to this data story about recorded offences in Victoria, Australia.

We will explore how crime changes over time and across regions using open data.

Data Visualisation Overview

In this presentation, we will examine the following key insights:

By Division: Identifying which major crime categories are most prevalent.

Top 10 Subgroups: Zooming in on the specific offence types that occur most frequently.

Composition Over Time: How the mix of different crime divisions has shifted year-on-year.

Total recorded offences over time

crime_yearly <- crime %>%
  group_by(year) %>%
  summarise(total_offences = sum(count, na.rm = TRUE))

ggplot(crime_yearly, aes(x = year, y = total_offences)) +
  geom_line() +
  geom_point() +
  labs(
    title = "Total Recorded Offences in Victoria",
    x = "Year",
    y = "Total offences"
  ) +
  theme_minimal()

Offences by division

crime_division <- crime %>%
group_by(division) %>%
summarise(total_offences = sum(count, na.rm = TRUE)) %>%
arrange(desc(total_offences))

ggplot(crime_division, aes(x = reorder(division, total_offences), y = total_offences)) +
geom_col() +
coord_flip() +
labs(
title = "Total Recorded Offences by Division",
x = "Offence division",
y = "Total offences"
) +
theme_minimal()

Top 10 offence subgroups

crime_subgroup <- crime %>%
group_by(subgroup) %>%
summarise(total_offences = sum(count, na.rm = TRUE)) %>%
arrange(desc(total_offences)) %>%
slice_head(n = 10)

ggplot(crime_subgroup, aes(x = reorder(subgroup, total_offences), y = total_offences)) +
geom_col() +
coord_flip() +
labs(
title = "Top 10 Offence Subgroups by Recorded Offences",
x = "Offence subgroup",
y = "Total offences"
) +
theme_minimal()

Offence divisions over time

crime_div_time <- crime %>%
  group_by(year, division) %>%
  summarise(total = sum(count, na.rm = TRUE))
## `summarise()` has grouped output by 'year'. You can override using the
## `.groups` argument.
ggplot(crime_div_time, aes(x = year, y = total, fill = division)) +
  geom_col(position = "stack") +
  labs(
    title = "Offence Divisions Over Time",
    x = "Year",
    y = "Total offences"
  ) +
  theme_minimal()