knitr::opts_chunk$set(message=FALSE,warning=FALSE,dpi=300,fig.retina=2,fig.width=8)
source(here::here("src/common_basis.R"))
library(plotly)
In the following, we
periods <- tribble(~period,~start_year,~end_year,
"Köthen", 1617L, 1650L,
"Weimar", 1651L, 1662L,
"Halle", 1667L, 1680L
)
p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
inner_join(fbs_metadata) %>%
filter(field_code %in% c("028A", "028B") | is.na(rank_and_position) | !str_detect(rank_and_position,"graf|herzog|fürst")) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
right_join(fbs_metadata) %>%
collect() %>%
complete(nesting(member_number,earliest_year_of_admission),fill=list(works=0)) %>%
inner_join(periods,join_by(earliest_year_of_admission>=start_year,earliest_year_of_admission<=end_year)) %>%
mutate(label=str_c(member_number,": ",family_name,", ", first_name)) %>%
ggplot(aes(x=earliest_year_of_admission,y=works)) +
scale_x_continuous(breaks=seq(1600,1700,by=10)) +
ylab("Mean contributions per member joining (N)") +
xlab("Year of admission") +
geom_smooth(span=0.3) +
geom_point(data=. %>% group_by(period, earliest_year_of_admission) %>% summarise(works=mean(works))) +
scale_y_continuous(breaks=seq(0,20,by=2)) +
theme_hsci_discrete() +
theme(legend.position = "bottom") +
coord_cartesian(ylim=c(0,NA))
Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(member_number)`Joining with `by = join_by(member_number)`
periods <- tribble(~start_year,~end_year,~period,
1617L,1623L, "Köthen",
1624L,1630L, "Köthen",
1631L,1637L, "Köthen",
1638L,1644L, "Köthen",
1644L,1650L, "Köthen",
1651L,1656L, "Weimar",
1657L,1662L, "Weimar",
1667L,1673L, "Halle",
1674L,1680L, "Halle"
) %>% mutate(period_range=factor(str_c(start_year,"-",end_year)))
d <- p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
inner_join(fbs_metadata) %>%
filter(field_code %in% c("028A", "028B") | is.na(rank_and_position) | !str_detect(rank_and_position,"graf|herzog|fürst")) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
right_join(fbs_metadata) %>%
collect() %>%
complete(nesting(member_number,earliest_year_of_admission),fill=list(works=0)) %>%
inner_join(periods,join_by(earliest_year_of_admission>=start_year,earliest_year_of_admission<=end_year)) %>%
mutate(period_range=fct_rev(period_range),printings=fct_relevel(case_when(
works==0 ~ "0",
works==1 ~ "1",
works>=2 & works<5 ~ "2-4",
works>=5 & works<10 ~ "5-9",
works>=10 & works<20 ~ "10-19",
works>=20 ~ ">=20"
), "0","1","2-4","5-9","10-19",">=20")) %>%
mutate(label=str_c(member_number,": ",family_name,", ", first_name)) %>%
count(period_range,printings) %>%
group_by(period_range) %>%
mutate(prop=n/sum(n)) %>%
ungroup()
Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(member_number)`Joining with `by = join_by(member_number)`
d %>%
group_by(period_range) %>%
mutate(tn=sum(n)) %>%
ungroup() %>%
mutate(period_range=fct(str_c(period_range," N=(",tn,")"))) %>%
filter(printings!="0") %>%
ggplot(aes(x=period_range,y=prop,group=printings,fill=printings)) +
ylab("Proportion of members") +
xlab("Period of admission") +
geom_col(position='stack') +
theme_hsci_discrete() +
theme(legend.position = "bottom") +
scale_y_continuous(labels=scales::percent) +
scale_coloropt(limits=c(">=20","10-19","5-9", "2-4", "1")) +
labs(fill="Printings associated with member (N)") +
coord_flip()
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
d %>%
group_by(period_range) %>%
mutate(tn=sum(n)) %>%
ungroup() %>%
mutate(period_range=fct(str_c(period_range," N=(",tn,")"))) %>%
ggplot(aes(x=period_range,y=n,group=printings,fill=printings)) +
ylab("Proportion of members") +
xlab("Period of admission") +
geom_col(position='stack') +
theme_hsci_discrete() +
theme(legend.position = "bottom") +
scale_coloropt(limits=c(">=20","10-19","5-9", "2-4", "1", "0")) +
labs(fill="Printings associated with member (N)") +
coord_flip()
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
d
p1 <- p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
mutate(dataset="base set") %>%
union_all(
p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
inner_join(fbs_metadata) %>%
filter(field_code %in% c("028A", "028B") | is.na(rank_and_position) | !str_detect(rank_and_position,"graf|herzog|fürst")) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
mutate(dataset="028C graf, herzog, fürst removed")
) %>%
right_join(fbs_metadata) %>%
collect() %>%
complete(dataset,nesting(member_number,earliest_year_of_admission),fill=list(works=0)) %>%
filter(!is.na(dataset)) %>%
mutate(label=str_c(member_number,": ",family_name,", ", first_name)) %>%
ggplot(aes(x=earliest_year_of_admission,y=works,color=dataset,fill=dataset)) +
scale_x_continuous(breaks=seq(1600,1700,by=10)) +
ylab("Society-related printings substantively contributed to (N)") +
xlab("Year of admission") +
theme_hsci_discrete()
Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(member_number)`Joining with `by = join_by(member_number)`
p1 +
geom_smooth(span=0.3) +
geom_point(data=. %>% group_by(earliest_year_of_admission,dataset) %>% summarise(works=mean(works))) +
scale_y_continuous(breaks=seq(0,10,by=1)) +
theme(legend.position = "bottom") +
coord_cartesian(ylim=c(0,NA))
(p1 +
scale_y_continuous(breaks=seq(0,500,by=50)) +
geom_jitter(aes(text=label),size=0.5, height=0) +
geom_smooth(span=0.3)
) %>%
ggplotly(width=1024,height=768)
Warning: Ignoring unknown aesthetics: text`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
periods <- tribble(~period,~start_year,~end_year,
"Köthen", 1617L, 1650L,
"Weimar", 1651L, 1667L,
"Halle", 1668L, 1680L
)
d <- p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
mutate(dataset="base set") %>%
union_all(
p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
inner_join(fbs_metadata) %>%
filter(field_code %in% c("028A", "028B") | is.na(rank_and_position) | !str_detect(rank_and_position,"graf|herzog|fürst")) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
mutate(dataset="028C graf, herzog, fürst removed")
) %>%
right_join(fbs_metadata) %>%
collect() %>%
complete(dataset,nesting(member_number,earliest_year_of_admission),fill=list(works=0)) %>%
filter(!is.na(dataset))
Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(member_number)`Joining with `by = join_by(member_number)`
d %>%
inner_join(periods, join_by(earliest_year_of_admission>=start_year,earliest_year_of_admission<=end_year)) %>%
group_by(period, dataset) %>%
summarise(mean_printings=mean(works)) %>%
relocate(dataset,period,mean_printings) %>%
arrange(dataset,period)
`summarise()` has grouped output by 'period'. You can override using the `.groups` argument.
periods <- tribble(~start_year,~end_year,~period,
1617L,1623L, "Köthen",
1624L,1630L, "Köthen",
1631L,1637L, "Köthen",
1638L,1644L, "Köthen",
1644L,1650L, "Köthen",
1651L,1656L, "Weimar",
1657L,1662L, "Weimar",
1667L,1673L, "Halle",
1674L,1680L, "Halle"
) %>% mutate(period_range=factor(str_c(start_year,"-",end_year)))
p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
inner_join(fbs_metadata) %>%
filter(field_code %in% c("028A", "028B") | is.na(rank_and_position) | !str_detect(rank_and_position,"graf|herzog|fürst")) %>%
group_by(member_number) %>%
summarise(works=n_distinct(p_id)) %>%
right_join(fbs_metadata) %>%
replace_na(list(works=0)) %>%
collect() %>%
inner_join(periods, join_by(earliest_year_of_admission>=start_year,earliest_year_of_admission<=end_year)) %>%
group_by(period_range) %>%
summarise(published_min_one=sum(works>=1)/n(),published_min_two=sum(works>=2)/n(),published_min_five=sum(works>=5)/n(),published_min_ten=sum(works>=10)/n(),published_min_twenty=sum(works>=20)/n(), published_min_fifty=sum(works>=50)/n()) %>%
gt() %>%
fmt_percent() %>%
fmt_passthrough(period_range)
Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(member_number)`Joining with `by = join_by(member_number)`
period_range | published_min_one | published_min_two | published_min_five | published_min_ten | published_min_twenty | published_min_fifty |
---|---|---|---|---|---|---|
1617-1623 | 13.41% | 6.10% | 3.66% | 2.44% | 1.22% | 0.00% |
1624-1630 | 6.67% | 5.00% | 3.33% | 2.50% | 0.83% | 0.83% |
1631-1637 | 9.65% | 4.39% | 1.75% | 0.00% | 0.00% | 0.00% |
1638-1644 | 9.43% | 8.49% | 4.72% | 3.77% | 2.83% | 0.94% |
1644-1650 | 19.01% | 14.05% | 7.44% | 5.79% | 4.13% | 2.48% |
1651-1656 | 15.07% | 8.22% | 4.79% | 4.11% | 2.74% | 0.00% |
1657-1662 | 20.69% | 12.07% | 4.31% | 3.45% | 2.59% | 1.72% |
1667-1673 | 32.08% | 20.75% | 16.98% | 11.32% | 3.77% | 1.89% |
1674-1680 | 30.61% | 22.45% | 18.37% | 10.20% | 4.08% | 2.04% |
(p_to_a %>%
inner_join(fbs_purpose_related_p) %>%
inner_join(a_id_to_fbs_member_number) %>%
filter(
field_code %in% c("028A", "028B", "028C"),
is.na(role) | !role %in% c("ctb", "dte"), # normed role has to be unknown or not one of these
is.na(role2) | !str_detect(role2, !!!str_flatten(c( # role2 should not be one of these
"^Adressat",
"Erwähnte",
"Gefeierte",
"Mitglied eines Ausschusses, der akademische Grade vergibt",
"Normerlassende Gebietskörperschaft",
"Praeses",
"Respondent",
"Sonstige Person, Familie und Körperschaft",
"Verfasser",
"Vertragspartner",
"Widmende",
"Widmungsempfänger",
"Drucker",
"Zensor",
"Beiträger",
"GeistigeR Schöpfer",
"Mitwirkender",
"Herausgeber",
"Angeklagte",
"Auftraggeber"
), collapse = "|^"))
) %>%
left_join(p_genre) %>%
left_join(genre_categorisation) %>%
filter(is.na(full_genre) | group_1=="Society-related") %>%
inner_join(fbs_metadata) %>%
filter(field_code %in% c("028A", "028B") | is.na(rank_and_position) | !str_detect(rank_and_position,"graf|herzog|fürst")) %>%
group_by(member_number, group_3) %>%
summarise(works=n_distinct(p_id), .groups="drop") %>%
right_join(fbs_metadata) %>%
mutate(label=str_c(member_number,": ",family_name,", ", first_name)) %>%
collect() %>%
complete(earliest_year_of_admission, group_3, fill=list(works=0)) %>%
ggplot(aes(x=earliest_year_of_admission,y=works)) +
geom_jitter(aes(text=label),size=0.5, height=0) +
geom_smooth(span=0.3) +
scale_x_continuous(breaks=seq(1600,1700,by=10)) +
ylab("Society-related printings substantively contributed to (N)") +
xlab("Year of admission") +
facet_wrap(~group_3, scales="free_y") +
theme_hsci_discrete()) %>%
ggplotly(width=1024,height=768)
Joining with `by = join_by(p_id)`Joining with `by = join_by(a_id)`Joining with `by = join_by(p_id)`Joining with `by = join_by(full_genre)`Joining with `by = join_by(member_number)`Joining with `by = join_by(member_number)`Warning: Ignoring unknown aesthetics: text`geom_smooth()` using method = 'loess' and formula = 'y ~ x'