Voting Patterns Across Australian States – 2025 Federal Election

Sruthi Suresh

2025-06-04

Introduction

  • Analyses voting patterns from the 2025 Australian Federal Election.

  • Highlights total votes and voting methods by state.

  • Data sourced from the Australian Electoral Commission (AEC).

About the Data

  • File: HouseVotes_State.csv
  • Source: AEC official dataset
  • Key variables:
    • StateNm: State name
    • EligibleElectors: Registered voters
    • TotalVotes: All votes counted
    • Vote types: PostalVotes, PrePollVotes, AbsentVotes, OrdinaryVotes, etc.
library(readr)
library(dplyr)
library(ggplot2)
library(tidyr)
library(scales)
library(ggthemes)
library(plotly)

# Load data
data <- read_csv("HouseVotes_State.csv")

Total Votes by State

ggplot(data, aes(x = reorder(StateNm, TotalVotes), y = TotalVotes, fill = StateNm)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = scales::comma(TotalVotes)), hjust = -0.1, size = 5) +
  coord_flip() +
  labs(title = "Total Votes Counted by State in 2025",
       subtitle = "Data sourced from Australian Electoral Commission",
       x = "State", y = "Total Votes") +
  scale_fill_brewer(palette = "Set3") +
  scale_y_continuous(labels = scales::label_comma(), expand = expansion(mult = c(0, 0.1))) +
  theme_minimal(base_size = 18) +
  theme(plot.title = element_text(face = "bold"),
        plot.subtitle = element_text(size = 14, margin = margin(b = 15)),
        axis.title = element_text(face = "bold"))

  • States like NSW and VIC lead in vote count.
  • Smaller territories show significantly lower totals.

Vote Types by State

vote_types <- data %>%
  select(StateNm, PostalVotes, PrePollVotes, AbsentVotes, OrdinaryVotes) %>%
  pivot_longer(cols = -StateNm, names_to = "VoteType", values_to = "Count")
# Create ggplot
p <- ggplot(vote_types, aes(x = reorder(StateNm, Count), y = Count, fill = VoteType)) +
  geom_col(position = "stack") + coord_flip() +labs(title = "Vote Types by State and Territory",subtitle = "Comparing Postal, PrePoll, Absent, and Ordinary Votes",x = "State", y = "Number of Votes", fill = "Vote Type" ) +scale_fill_brewer(palette = "Pastel1") + scale_y_continuous(labels = label_comma()) + theme_minimal(base_size = 16) + theme(plot.title = element_text(face = "bold"),plot.subtitle = element_text(size = 10, margin = margin(b = 13)),axis.title = element_text(face = "bold") )
# Make it interactive
ggplotly(p)
  • Pre-poll and postal votes are rising in many states.
  • Traditional ordinary voting is still dominant in some regions.

Vote Share by State (Proportion)

donut_data <- data %>%
  mutate(Share = TotalVotes / sum(TotalVotes) * 100)
plot_ly(donut_data, labels = ~StateNm, values = ~TotalVotes, type = 'pie',textinfo = 'label+percent', hole = 0.5) %>%
  layout(title = "Share of National Votes by State – 2025", showlegend = FALSE)
  • Larger states account for most of the votes.
  • Visually highlights how electoral weight is distributed.

Key Insights

  • NSW and VIC had the highest total votes.

  • Pre-poll and postal votes were widely used.

  • Insights support planning future election logistics.

Call to Action

  • Leverage data to enhance election infrastructure.

  • Allocate resources based on voting behaviour.

  • Promote transparency and voter engagement.

Limitations

  • This dataset only covers vote counts, not outcomes.
  • No demographic or age group insights.
  • Does not explore voter satisfaction or participation drivers.

References

  • Australian Electoral Commission. (2025). House votes counted by state – Federal Election 2025. Retrieved from https://www.aec.gov.au/results/

  • Brewer, C. A. (2023). ColorBrewer 2.0: Color advice for cartography. Retrieved from https://colorbrewer2.org

  • Healy, K. (2018). Data visualization: A practical introduction. Princeton University Press. Retrieved from https://socviz.co

  • R Core Team. (2024). R: A language and environment for statistical computing (Version 4.4.0) [Computer software]. R Foundation for Statistical Computing. Retrieved from https://www.r-project.org/

  • RStudio, PBC. (2025). RStudio IDE user guide. Retrieved from https://posit.co

  • Sievert, C. (2020). Interactive web-based data visualization with R, plotly, and shiny. Chapman and Hall/CRC. Retrieved from https://plotly-r.com

  • Tennekes, M. (2018). tmap: Thematic maps in R. Journal of Statistical Software, 84(6), 1–39. https://doi.org/10.18637/jss.v084.i06

  • Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer-Verlag. Retrieved from https://ggplot2.tidyverse.org

  • Wickham, H., & Grolemund, G. (2016). R for data science: Import, tidy, transform, visualize, and model data. O’Reilly Media. Retrieved from https://r4ds.hadley.nz