Created
April 12, 2023 19:22
-
-
Save ryanburge/4422ea6adecb00bc9f60e8760e7fc2aa to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ggg1 <- cces08 %>% | |
mutate(rel = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
mutate(vote = CC410) %>% | |
mutate(vote = frcode(vote == 1 ~ "Republican", | |
vote == 2 ~ "Democrat", | |
vote == 3 | vote == 4 | vote == 5 | vote == 6 ~ "Third Party")) %>% | |
group_by(rel) %>% | |
ct(vote, wt = V201, show_na = FALSE) %>% | |
mutate(year = 2008) | |
ggg2 <- cces12 %>% | |
mutate(rel = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
mutate(vote = CC410a) %>% | |
mutate(vote = frcode(vote == 1 ~ "Democrat", | |
vote == 2 ~ "Republican", | |
vote == 4 ~ "Third Party")) %>% | |
group_by(rel) %>% | |
ct(vote, wt = weight_vv_post, show_na = FALSE) %>% | |
mutate(year = 2012) | |
ggg3 <- cces16 %>% | |
mutate(rel = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
mutate(vote = CC16_410a) %>% | |
mutate(vote = frcode(vote == 1 ~ "Republican", | |
vote == 2 ~ "Democrat", | |
vote == 3 | vote == 4 | vote == 5 | vote == 8 ~ "Third Party")) %>% | |
group_by(rel) %>% | |
ct(vote, wt = commonweight_vv_post, show_na = FALSE) %>% | |
mutate(year = 2016) | |
ggg4 <- cces20 %>% | |
mutate(rel = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
mutate(vote = CC20_410) %>% | |
mutate(vote = frcode(vote == 1 ~ "Democrat", | |
vote == 2 ~ "Republican", | |
vote == 4 ~ "Third Party")) %>% | |
group_by(rel) %>% | |
ct(vote, wt = commonpostweight, show_na = FALSE) %>% | |
mutate(year = 2020) | |
graph <- bind_rows(ggg1, ggg2, ggg3, ggg4) | |
graph %>% | |
filter(rel != "NA") %>% | |
mutate(year = as.factor(year)) %>% | |
mutate(lab = round(pct, 2)) %>% | |
ggplot(., aes(x = fct_rev(year), y = pct, fill = fct_rev(vote))) + | |
geom_col(color = "black") + | |
coord_flip() + | |
facet_wrap(~ rel, ncol =1, strip.position = "top") + | |
scale_fill_manual(values = c("darkorchid", "dodgerblue3", "firebrick3")) + | |
theme_rb() + | |
theme(legend.position = "bottom") + | |
scale_y_continuous(labels = percent) + | |
theme(strip.text.y.left = element_text(angle=0, hjust = 1)) + | |
guides(fill = guide_legend(reverse=T, nrow = 1)) + | |
# theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank()) + | |
theme(panel.grid.minor.y=element_blank(), panel.grid.major.y=element_blank()) + | |
geom_text(aes(label = ifelse(pct >.05, paste0(lab*100, '%'), '')), position = position_stack(vjust = 0.5), size = 6, family = "font", color = "black") + | |
labs(x = "", y = "", title = "Presidential Vote Choice Among the Non-Religious ", subtitle = "", caption = "@ryanburge\nData: Cooperative Election Study, 2008-2020") | |
save("nones_vote_all.png", wd = 6, ht = 6) | |
graph1 <- cces22 %>% | |
filter(pid7 <= 7) %>% | |
mutate(trad = frcode(evangelical == 1 & race == 1 ~ "White Evangelical", | |
evangelical == 1 & race != 1 ~ "Nonwhite Evangelical", | |
bprot == 1 ~ "Black Protestants", | |
mainline == 1 ~ "Mainline", | |
religpew == 2 & race == 1 ~ "White Catholic", | |
religpew == 2 & race != 1 ~ "Nonwhite Catholic", | |
religpew == 3 ~ "Mormon", | |
religpew == 4 ~ "Orthodox", | |
religpew == 5 ~ "Jewish", | |
religpew == 6 ~ "Muslim", | |
religpew == 7 ~ "Buddhist", | |
religpew == 8 ~ "Hindu", | |
religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular", | |
religpew == 12 ~ "Something Else", | |
TRUE ~ "Unclassified")) %>% | |
group_by(trad) %>% | |
mean_ci(pid7, wt = commonweight) %>% | |
select(pid = mean, trad) | |
graph2 <- cces22 %>% | |
filter(ideo5 <= 7) %>% | |
mutate(trad = frcode(evangelical == 1 & race == 1 ~ "White Evangelical", | |
evangelical == 1 & race != 1 ~ "Nonwhite Evangelical", | |
bprot == 1 ~ "Black Protestants", | |
mainline == 1 ~ "Mainline", | |
religpew == 2 & race == 1 ~ "White Catholic", | |
religpew == 2 & race != 1 ~ "Nonwhite Catholic", | |
religpew == 3 ~ "Mormon", | |
religpew == 4 ~ "Orthodox", | |
religpew == 5 ~ "Jewish", | |
religpew == 6 ~ "Muslim", | |
religpew == 7 ~ "Buddhist", | |
religpew == 8 ~ "Hindu", | |
religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular", | |
religpew == 12 ~ "Something Else", | |
TRUE ~ "Unclassified")) %>% | |
group_by(trad) %>% | |
mean_ci(ideo5, wt = commonweight) %>% | |
select(ideo = mean, trad) | |
gg1 <- left_join(graph1, graph2) | |
graph3 <- cces22 %>% | |
filter(pid7 <= 7) %>% | |
mean_ci(pid7, wt = commonweight) %>% | |
mutate(trad = "Entire Sample") %>% | |
select(pid = mean, trad) | |
graph4 <- cces22 %>% | |
filter(ideo5 <= 5) %>% | |
mean_ci(ideo5, wt = commonweight) %>% | |
mutate(trad = "Entire Sample") %>% | |
select(ideo = mean, trad) | |
gg2 <- left_join(graph3, graph4) | |
gg <- bind_rows(gg1, gg2) %>% | |
mutate(color = frcode(trad == "Atheist" | trad == "Agnostic" | trad == "Nothing in Particular" ~ "Yes", TRUE ~ "No")) | |
library(ggrepel) | |
gg <- gg %>% | |
filter(trad != "Unclassified") %>% | |
filter(trad != "Something Else") | |
gg %>% | |
ggplot(., aes(x = pid, y = ideo, color = color)) + | |
geom_point(shape = 21, stroke = 2) + | |
scale_x_continuous(limits = c(1,7), breaks = c(1,2,3,4,5,6,7), labels = c("Strong\nDem.", "Not Very\nStrong Dem.", "Lean\nDem.", "Independent", "Lean\nRep.", "Not Very\nStrong Rep.", "Strong\nRep.")) + | |
scale_y_continuous(limits = c(1,5), breaks = c(1,2,3,4,5), labels = c("Very\nLiberal", "Liberal", "Moderate", "Conservative", "Very\nConservative")) + | |
theme_rb() + | |
scale_color_manual(values = c( "darkblue", "orange")) + | |
theme(panel.grid.major = element_line(colour = "white")) + | |
geom_text_repel(data = gg, aes(x = pid, y = ideo, label = trad), family = "font") + | |
labs(x = "Partisanship", y = "Ideology", title = "Placing The Nones in Ideological and Partisan Space", caption = "@ryanburge\nData: Cooperative Election Study, 2008-2022") | |
save("nones_scatter.png") | |
cces <- read.fst("E://data/cces_abort21.fst") | |
yyy1 <- cces %>% | |
mutate(ab = case_when(ab_choice == 1 ~ 1, | |
ab_choice == 2 ~ 0)) %>% | |
filter(trad2 == "Atheist" | trad2 == "Agnostic" | trad2 == "Nothing in Particular") %>% | |
group_by(year, trad2) %>% | |
mean_ci(ab, wt = weight, ci = .84) | |
yyy2 <- cces22 %>% | |
mutate(ab = case_when(CC22_332a == 1 ~ 1, | |
CC22_332a == 2 ~ 0)) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci(ab, wt = commonweight, ci = .84) %>% | |
mutate(year = 2022) | |
graph1 <- bind_rows(yyy1, yyy2) %>% mutate(type = "Any Reason") | |
yyy1 <- cces %>% | |
mutate(ab = case_when(ab_rape == 1 ~ 1, | |
ab_rape == 2 ~ 0)) %>% | |
filter(trad2 == "Atheist" | trad2 == "Agnostic" | trad2 == "Nothing in Particular") %>% | |
group_by(year, trad2) %>% | |
mean_ci(ab, wt = weight, ci = .84) | |
yyy2 <- cces22 %>% | |
mutate(ab = case_when(CC22_332b == 1 ~ 1, | |
CC22_332b == 2 ~ 0)) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci(ab, wt = commonweight, ci = .84) %>% | |
mutate(year = 2022) | |
graph2 <- bind_rows(yyy1, yyy2) %>% mutate(type = "Only For Rape, Incest, Life of Mother") | |
yyy1 <- cces %>% | |
mutate(ab = case_when(ab_late == 1 ~ 1, | |
ab_late == 2 ~ 0)) %>% | |
filter(trad2 == "Atheist" | trad2 == "Agnostic" | trad2 == "Nothing in Particular") %>% | |
group_by(year, trad2) %>% | |
mean_ci(ab, wt = weight, ci = .84) | |
yyy2 <- cces22 %>% | |
mutate(ab = case_when(CC22_332c == 1 ~ 1, | |
CC22_332c == 2 ~ 0)) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci(ab, wt = commonweight, ci = .84) %>% | |
mutate(year = 2022) | |
graph3 <- bind_rows(yyy1, yyy2) %>% mutate(type = "Prohibit After 20 Weeks") | |
yyy1 <- cces %>% | |
mutate(ab = case_when(ab_ins == 1 ~ 1, | |
ab_ins == 2 ~ 0)) %>% | |
filter(trad2 == "Atheist" | trad2 == "Agnostic" | trad2 == "Nothing in Particular") %>% | |
group_by(year, trad2) %>% | |
mean_ci(ab, wt = weight, ci = .84) | |
yyy2 <- cces22 %>% | |
mutate(ab = case_when(CC22_332d == 1 ~ 1, | |
CC22_332d == 2 ~ 0)) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci(ab, wt = commonweight, ci = .84) %>% | |
mutate(year = 2022) | |
graph4 <- bind_rows(yyy1, yyy2) %>% mutate(type = "Employers Can Deny Coverage\n For Abortion in Insurance Plans") | |
yyy1 <- cces %>% | |
mutate(ab = case_when(ab_funds == 1 ~ 1, | |
ab_funds == 2 ~ 0)) %>% | |
filter(trad2 == "Atheist" | trad2 == "Agnostic" | trad2 == "Nothing in Particular") %>% | |
group_by(year, trad2) %>% | |
mean_ci(ab, wt = weight, ci = .84) | |
yyy2 <- cces22 %>% | |
mutate(ab = case_when(CC22_332e == 1 ~ 1, | |
CC22_332e == 2 ~ 0)) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci(ab, wt = commonweight, ci = .84) %>% | |
mutate(year = 2022) | |
graph5 <- bind_rows(yyy1, yyy2) %>% mutate(type = "Prohibit Federal Funds for Abortion") | |
yyy1 <- cces %>% | |
mutate(ab = case_when(ab_never == 1 ~ 1, | |
ab_never == 2 ~ 0)) %>% | |
filter(trad2 == "Atheist" | trad2 == "Agnostic" | trad2 == "Nothing in Particular") %>% | |
group_by(year, trad2) %>% | |
mean_ci(ab, wt = weight, ci = .84) | |
yyy2 <- cces22 %>% | |
mutate(ab = case_when(CC22_332f == 1 ~ 1, | |
CC22_332f == 2 ~ 0)) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci(ab, wt = commonweight, ci = .84) %>% | |
mutate(year = 2022) | |
graph6 <- bind_rows(yyy1, yyy2) %>% mutate(type = "Illegal in All Circumstances") | |
all <- bind_df("graph") %>% na.omit() | |
all %>% | |
mutate(lab = round(mean, 2)) %>% | |
ggplot(., aes(x = year, y = mean, color = trad2, group = trad2)) + | |
geom_point() + | |
geom_line() + | |
facet_wrap(~ type) + | |
theme_rb(legend = TRUE) + | |
scale_color_gdocs() + | |
y_pct() + | |
scale_x_continuous(breaks = c(2012, 2014, 2016, 2018, 2020, 2022)) + | |
labs(x= "Year", y = "Share In Favor", title = "Abortion Public Opinion Since 2014 Among the Nones", caption = "@ryanburge\nData: Cooperative Election Study, 2014-2022") | |
save("ab_nones_2022.png") | |
fun <- function(df, var1, var2, var3, var4, weight, yr) { | |
aaa1 <- df %>% | |
filter({{var1}} <= 7) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci({{var1}}, wt = {{weight}}) %>% | |
mutate(year = yr) %>% | |
mutate(group = "Yourself") | |
aaa2 <- df %>% | |
filter({{var2}} <= 7) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci({{var2}}, wt = {{weight}}) %>% | |
mutate(year = yr) %>% | |
mutate(group = "Democrats") | |
aaa3 <- df %>% | |
filter({{var3}} <= 7) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci({{var3}}, wt = {{weight}}) %>% | |
mutate(year = yr) %>% | |
mutate(group = "Republicans") | |
aaa4 <- df %>% | |
filter({{var3}} <= 7) %>% | |
mutate(trad2 = frcode(religpew == 9 ~ "Atheist", | |
religpew == 10 ~ "Agnostic", | |
religpew == 11 ~ "Nothing in Particular")) %>% | |
group_by(trad2) %>% | |
mean_ci({{var4}}, wt = {{weight}}) %>% | |
mutate(year = yr) %>% | |
mutate(group = "Trump") | |
bind_rows(aaa1, aaa2, aaa3, aaa4) | |
} | |
yyy1 <- cces16 %>% fun(CC16_340a, CC16_340g, CC16_340h, CC16_340e, commonweight, yr = 2016) | |
yyy2 <- cces17 %>% fun(CC17_350a, CC17_350d, CC17_350e, CC17_350c, weights_common, yr = 2017) | |
yyy3 <- cces18 %>% fun(CC18_334A, CC18_334D, CC18_334E, CC18_334C, commonweight, yr = 2018) | |
yyy4 <- cces19 %>% fun(CC19_334a, CC19_334d, CC19_334e, CC19_334c, commonweight, yr = 2019) | |
yyy5 <- cces20 %>% fun(CC20_340a, CC20_340e, CC20_340f, CC20_340d, commonweight, yr = 2020) | |
yyy6 <- cces21 %>% fun(CC21_330a, CC21_330e, CC21_330f, CC21_330b, commonweight, yr = 2021) %>% filter(group != "Trump") | |
yyy7 <- cces22 %>% fun(CC22_340a, CC22_340e, CC22_340f, CC22_340d, commonweight, yr = 2022) | |
graph <- bind_df("yyy") %>% filter(trad2 != "NA") | |
graph$group <- factor(graph$group, levels = c("Democrats", "Yourself", "Trump", "Republicans")) | |
graph %>% | |
mutate(year = as.factor(year)) %>% | |
ggplot(., aes(x = fct_rev(year), y = mean, color = group, group = group)) + | |
geom_line() + | |
geom_errorbar(aes(ymin = lower, ymax=upper), size = 1, width = 0) + | |
geom_point(shape = 21, stroke = 2, fill = "white") + | |
coord_flip() + | |
facet_wrap(~ trad2, ncol = 1) + | |
scale_y_continuous(breaks = c(1,2,3,4,5,6,7), labels = c("Very\nLib", "Lib.", "Somewhat\nLib.", "Middle of\nthe Road", "Somewhat\nCons.", "Cons.", "Very\nCons"), limits = c(1,7)) + | |
scale_color_manual(values = c("dodgerblue3", "black", "darkorchid", "firebrick3")) + | |
theme_rb(legend = TRUE) + | |
labs(x = "", y = "", title = "Place Yourself, Democrats, Trump, and\nRepublicans in Ideological Space", subtitle = "Among the Nones", | |
caption = "@ryanburge\nData: Cooperative Election Study, 2016-2022") | |
save("your_self_dems_republicans_trump_nones22.png", ht = 8, wd = 5) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment