Williamson County leads the way in household median income and home ownership rate.

There is a corelation between median household income and home ownership. This is shown by the prominence of Williamson county on the scatter plot. Williamson County is the wealthiest county in the state. All of the Williamson County dots are towards the top right which proves the correlation. On the contrary, Davidson and Rutherford County dots are lower and to the left, signifying the low income and home ownership rate.


Rent in Rutherford County




Code:

# ----------------------------------------------------------
# Step 1: Install required packages (if missing)
# ----------------------------------------------------------

if (!require("tidyverse"))
  install.packages("tidyverse")
if (!require("plotly"))
  install.packages("plotly")

# ----------------------------------------------------------
# Step 2: Load libraries
# ----------------------------------------------------------

library(tidyverse)
library(plotly)

# ----------------------------------------------------------
# Step 3: Read data from CSV file
# ----------------------------------------------------------

mydata <- read_csv(
  "https://raw.githubusercontent.com/drkblake/Data/main/MGRData.csv"
)

Histogram <- plot_ly(
  data = mydata,
  x = ~ Ownership,
  type = "histogram",
  nbinsx = 40,
  opacity = 0.6,
  marker = list(
    color = "#4C78A8",
    line = list(color = "black", width = 1)
  )
) %>%
  layout(
    title = "Distribution of Home Ownership",
    xaxis = list(title = "Home Ownership (%)"),
    yaxis = list(title = "Number of Districts")
  )

Histogram
Boxplot <- plot_ly(
  data = mydata,
  x = ~County,
  y = ~Ownership,
  type = "box",
  color = ~County,
  colors = c(
    "Davidson"   = "#d73027",
    "Rutherford" = "#fc8d59",
    "Williamson" = "#1a9850"
  ),
  boxpoints = "outliers",
  opacity = 0.8
) %>%
  layout(
    title = "Median Gross Rent by County",
    xaxis = list(title = "County"),
    yaxis = list(title = "Ownership"),
    showlegend = FALSE   # optional, since x-axis already labels groups
  )

Boxplot
Scatterplot <- plot_ly(
  data = mydata,
  x = ~Med_Income,
  y = ~Ownership,
  type = "scatter",
  mode = "markers",
  text = ~County,
  hoverinfo = "text+x+y",
  color = ~County,
  colors = c(
    "Davidson"   = "#d73027",
    "Rutherford" = "#fc8d59",
    "Williamson" = "#1a9850"
  ),
  marker = list(
    size = 8,
    opacity = 0.7
  )
) %>%
  add_trace(
    type = "scatter",
    mode = "lines",
    x = ~Med_Income,
    y = fitted(lm(Ownership ~ Med_Income, data = mydata)),
    name = "OLS trend",
    line = list(color = "black", width = 2),
    inherit = FALSE
  ) %>%
  layout(
    title = "Median Gross Rent by Median Household Income",
    xaxis = list(title = "Median Household Income"),
    yaxis = list(title = "Home Ownership Rate (%)"),
    legend = list(title = list(text = "County"))
  )

Scatterplot