title: “lab 10” author: “Joshua Hawk” date: “2026-04-09” output: html_document

# ----------------------------------------------------------
# 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 of Home Ownership Rates
# ----------------------------------------------------------

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 Rates",
    xaxis = list(title = "Home Ownership Rate (%)"),
    yaxis = list(title = "Number of Divisions")
  )

Histogram

# ----------------------------------------------------------
# Boxplot: Home Ownership Rates by County
# ----------------------------------------------------------

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 = "Home Ownership Rates by County",
    xaxis = list(title = "County"),
    yaxis = list(title = "Home Ownership Rate (%)"),
    showlegend = FALSE
  )

Boxplot

# ----------------------------------------------------------
# Scatterplot: Ownership vs Median Household Income
# ----------------------------------------------------------

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 = "Home Ownership Rate by Median Household Income",
    xaxis = list(title = "Median Household Income ($)"),
    yaxis = list(title = "Home Ownership Rate (%)"),
    legend = list(title = list(text = "County"))
  )

Scatterplot