-
Notifications
You must be signed in to change notification settings - Fork 0
/
special_exhibitions.Rmd
373 lines (339 loc) · 17.5 KB
/
special_exhibitions.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
---
output:
flexdashboard::flex_dashboard:
vertical_layout: scroll
theme: cosmo
navbar:
- {icon: "fa-home", href: "./index.html", align: right }
runtime: shiny
---
```{r setup, include=FALSE, echo=FALSE}
library(flexdashboard)
library(tidyverse)
library(plotly)
library(shiny)
library(sf)
library(patchwork)
library(here)
library(ggmap)
library(leaflet)
```
```{r, echo=FALSE, warning=FALSE}
mypal<-c("#78B7C5", "#EBCC2A", "#FF0000",
"#3B9AB2", "#B40F20", "#0B775E", "#F2300F",
"#5BBCD6", "#F98400", "#ab0213", "#E2D200",
"#ff7700", "#46ACC8", "#00A08A", "#78B7C5",
"#a7ba42", "#f94f8a", "#DD8D29", "#EABE94")
load("data/met.RData")
met_egypt = met |>
filter(department == "Egyptian Art") |>
select(object_id, is_highlight, accession_year, object_name, title, period, dynasty, reign, object_date, object_begin_date, object_end_date, medium, credit_line, region, subregion, locale, excavation, tags)
# ignore line- need to commit
met_egypt = met_egypt |>
mutate(
dynasty = case_when(
dynasty == "11" ~ "Dynasty 11",
dynasty == "Dynasty 1, 3–4" | dynasty == "Dynasty 1 3-4" ~ "Dynasty Range",
dynasty == "Dynasty 11, late" ~ "Dynasty 11",
dynasty == "Dynasty 11?" ~ "Dynasty 11",
dynasty == "Dynasty 11–13" | dynasty == "Dynasty 11-13" ~ "Dynasty Range",
dynasty == "Dynasty 11–17" | dynasty == "Dynasty 11-17" ~ "Dynasty Range",
dynasty == "Dynasty 11-17" ~ "Dynasty Range",
dynasty == "Dynasty 11–18" ~ "Dynasty Range",
dynasty == "Dynasty 11–mid 12" | dynasty == "Dynasty 11-mid 12" ~ "Dynasty Range",
dynasty == "Dynasty 11–12" | dynasty == "Dynasty 11-12" ~ "Dynasty Range",
dynasty == "Dynasty 12, early" ~ "Dynasty 12",
dynasty == "Dynasty 12, early – mid" | dynasty == "Dynasty 12, early - mid" ~ "Dynasty 12",
dynasty == "Dynasty 12, early–mid" | dynasty == "Dynasty 12, early-mid" ~ "Dynasty 12",
dynasty == "Dynasty 12, late" ~ "Dynasty 12",
dynasty == "Dynasty 12, late – 13 up to 1700" | dynasty == "Dynasty 12, late - 13 up to 1700" ~ "Dynasty Range",
dynasty == "Dynasty 12, late-13 up to 1700 B. C." ~ "Dynasty Range",
dynasty == "Dynasty 12, late–17" ~ "Dynasty Range",
dynasty == "Dynasty 12, late-17" ~ "Dynasty Range",
dynasty == "Dynasty 12, mid" ~ "Dynasty 12",
dynasty == "Dynasty 12–13" ~ "Dynasty 12-13",
dynasty == "Dynasty 12, late–early 13" ~ "Dynasty 12-13",
dynasty == "Dynasty 12–17" ~ "Dynasty Range",
dynasty == "Dynasty 12–18" ~ "Dynasty Range",
dynasty == "Dynasty 13 to 1700 B.C." ~ "Dynasty Range",
dynasty == "Dynasty 13, mid" ~ "Dynasty 13",
dynasty == "Dynasty 13–17" ~ "Dynasty Range",
dynasty == "Dynasty 13–18, early" ~ "Dynasty Range",
dynasty == "Dynasty 13–SIP" ~ "Dynasty Range",
dynasty == "Dynasty 14–15" ~ "Dynasty Range",
dynasty == "Dynasty 15–17" ~ "Dynasty Range",
dynasty == "Dynasty 17–early Dynasty 18" ~ "Dynasty 17-18",
dynasty == "Dynasty 17–Early Dynasty 18" ~ "Dynasty 17-18",
dynasty == "Dynasty 17–18" ~ "Dynasty 17-18",
dynasty == "Dynasty 18 (?)" ~ "Dynasty 18",
dynasty == "Dynasty 18 or later (?)" ~ "Dynasty 18",
dynasty == "Dynasty 18, early" ~ "Dynasty 18",
dynasty == "Dynasty 18, late" ~ "Dynasty 18",
dynasty == "Dynasty 18, possibly later" ~ "Dynasty 18",
dynasty == "Dynasty 18, second half" ~ "Dynasty 18",
dynasty == "Dynasty 18–19" | dynasty == "Dynasty 18-19" ~ "Dynasty Range",
dynasty == "Dynasty 18–20" ~ "Dynasty Range",
dynasty == "Dynasty 19–20" ~ "Dynasty 19-20",
dynasty == "Dynasty 19–20 (Ramesside)" ~ "Dynasty 19-20",
dynasty == "Dynasty 19–20 or later (?)" ~ "Dynasty 19-20",
dynasty == "Dynasty 19–21" ~ "Dynasty Range",
dynasty == "Dynasty 19–25" ~ "Dynasty Range",
dynasty == "Dynasty 19–30" ~ "Dynasty Range",
dynasty == "Dynasty 1–2" ~ "Dynasty Range",
dynasty == "Dynasty 1-2" ~ "Dynasty Range",
dynasty == "Dynasty 2, second half" ~ "Dynasty 2",
dynasty == "Dynasty 20 (Ramesside)" ~ "Dynasty 2",
dynasty == "Dynasty 20 or later" ~ "Dynasty 20",
dynasty == "Dynasty 20–21" | dynasty == "Dynasty 20-21" ~ "Dynasty Range",
dynasty == "Dynasty 20–22" ~ "Dynasty Range",
dynasty == "Dynasty 20–26" ~ "Dynasty Range",
dynasty == "Dynasty 21 (?)" ~ "Dynasty 21",
dynasty == "Dynasty 21 or 22" ~ "Dynasty Range",
dynasty == "Dynasty 21–22" ~ "Dynasty Range",
dynasty == "Dynasty 21-22" ~ "Dynasty Range",
dynasty == "Dynasty 21–24" ~ "Dynasty Range",
dynasty == "Dynasty 21–25" ~ "Dynasty Range",
dynasty == "Dynasty 21–26" ~ "Dynasty Range",
dynasty == "Dynasty 21–30" ~ "Dynasty Range",
dynasty == "Dynasty 21–early Dynasty 22" ~ "Dynasty 21-22",
dynasty == "Dynasty 22, early" ~ "Dynasty 22",
dynasty == "Dynasty 22–24" ~ "Dynasty Range",
dynasty == "Dynasty 22–26" ~ "Dynasty Range",
dynasty == "Dynasty 25-26" ~ "Dynasty Range",
dynasty == "Dynasty 25–26" ~ "Dynasty Range",
dynasty == "Dynasty 25 (Kushite)" ~ "Dynasty 25",
dynasty == "Dynasty 25–30" ~ "Dynasty Range",
dynasty == "Dynasty 26 (Saite)" ~ "Dynasty 26",
dynasty == "Dynasty 26 and later" ~ "Dynasty Range",
dynasty == "Dynasty 26 or later" ~ "Dynasty Range",
dynasty == "Dynasty 26–29" ~ "Dynasty Range",
dynasty == "Dynasty 26–4th century" ~ "Dynasty Range",
dynasty == "Dynasty 26–30" ~ "Dynasty Range",
dynasty == "Dynasty 3–4" | dynasty == "Dynasty 3-4" ~ "Dynasty Range",
dynasty == "Dynasty 27–30" ~ "Dynasty Range",
dynasty == "Dynasty 27–30?" ~ "Dynasty Range",
dynasty == "Dynasty 30 or later" ~ "Dynasty 30",
dynasty == "Dynasty 5 (?)" ~ "Dynasty 5",
dynasty == "Dynasty 5, second half" ~ "Dynasty 5",
dynasty == "Dynasty 5-6" ~ "Dynasty Range",
dynasty == "Dynasty 5–6" ~ "Dynasty Range",
dynasty == "Dynasty 6–8" ~ "Dynasty Range",
dynasty == "Dynasty 6-8" ~ "Dynasty Range",
dynasty == "Dynasty 6–11" ~ "Dynasty Range",
dynasty == "Dynasty 6–12" ~ "Dynasty 2",
dynasty == "Dynasty 7–10 (?)" ~ "Dynasty Range",
dynasty == "Dynasty 8–11" ~ "Dynasty Range",
dynasty == "Dynasty 8–12" ~ "Dynasty Range",
dynasty == "Dynasty 8–18" ~ "Dynasty Range",
dynasty == "Dynasty 9?" ~ "Dynasty 9",
dynasty == "Dynasty 9–12" ~ "Dynasty Range",
dynasty == "Dynasty 18, early" ~ "Dynasty 18",
dynasty == "original Dynasty 19" ~ "Dynasty 19",
dynasty == "mid-Dynasty 18" ~ "Dynasty 18",
dynasty == "late Dynasty 22" ~ "Dynasty 22",
dynasty == "late Dynasty 21" ~ "Dynasty 21",
dynasty == "late Dynasty 13-17" ~ "Dynasty Range",
dynasty == "late Dynasty 13–17" ~ "Dynasty Range",
dynasty == "late Dynasty 12–early Dynasty 13" ~ "Dynasty 12-13",
dynasty == "late Dynasty 12–early Dynasty 13" ~ "Dynasty 12-13",
dynasty == "late Dynasty 12–Dynasty 13" ~ "Dynasty 12-13",
dynasty == "late Dynasty 12–13" ~ "Dynasty 12-13",
dynasty == "Probably Dynasty 1" ~ "Dynasty 1",
dynasty == "Probably Dynasty 26" ~ "Dynasty 26",
dynasty == "mid Dynasty 13" ~ "Dynasty 13",
dynasty == "early Dynasty 18" ~ "Dynasty 18",
dynasty == "dynasty 11" ~ "Dynasty 11",
dynasty == "Late dynasty 11" ~ "Dynasty 11",
dynasty == "Late Dynasty 21–early Dynasty 22" ~ "Dynasty 21-22",
dynasty == "Late Dynasty 12–13" ~ "Dynasty 12-13",
dynasty == "Dynasty 9–early Dnyasty 11" ~ "Dynasty Range",
dynasty == "mid to late Dynasty 13" ~ "Dynasty 13",
dynasty == "Dynasty 9–12" ~ "Dynasty Range",
dynasty == "Second Intermediate Period" ~ "Dynasty Range",
reign == "reign of Ramesses IV" ~ "Dynasty 20",
reign == "reign of Sethnakht" ~ "Dynasty 20",
object_date == "ca. 2649–1640 B.C." | object_name == "ca. 2649-1640 B.C." ~ "Dynasty Range",
TRUE ~ dynasty,
TRUE ~ reign,
TRUE ~ object_date
),
object_begin_date = case_when(
object_begin_date == 1899 ~ -1479,
TRUE ~ object_begin_date),
object_end_date = case_when(
object_end_date == 1899 ~ -1458,
TRUE ~ object_end_date),
dynasty = ifelse(is.na(dynasty), "No Dynasty Specified", dynasty),
dynasty = factor(dynasty, levels = c("Dynasty 1", "Dynasty 2", "Dynasty 3", "Dynasty 4", "Dynasty 5", "Dynasty 6", "Dynasty 8", "Dynasty 9", "Dynasty 11", "Dynasty 12", "Dynasty 12-13", "Dynasty 13", "Dynasty 14", "Dynasty 15", "Dynasty 17", "Dynasty 17-18", "Dynasty 18", "Dynasty 19", "Dynasty 19-20", "Dynasty 20", "Dynasty 21", "Dynasty 22", "Dynasty 23", "Dynasty 24", "Dynasty 25", "Dynasty 26", "Dynasty 27", "Dynasty 30", "Dynasty Range", "NA")),
dyn_number = ifelse(is.na(dynasty), 30, as.numeric(dynasty)))
dynasties = met_egypt |> arrange(dynasty) |> distinct(dynasty) |> pull()
dynasty_number = met_egypt |> arrange(dyn_number) |> distinct(dyn_number) |> pull()
met_subregions = met_egypt |>
filter(!(is.na(subregion))) |>
group_by(subregion) |>
summarize(artifact_number=n()) |>
filter(artifact_number>10)
met_subregions = met_subregions |>
mutate(
latitude = c(26.1834, 27.6262, 25.733, 25.7373, 25.7369, 25.550, 25.42, 29.571, 29.570, 25.4255, 25.4311, 28.531, 30.8036, 29.8685, 25.7317, 25.7166, 30.5704, 25.7402, 25.7000),
longitude= c(31.9226, 30.9852, 32.617, 32.6077, 32.6241, 32.4646, 32.28, 31.2318, 31.2318, 32.3528, 32.3603, 30.647, 31.8381, 31.2168, 32.6092, 32.6500, 31.5149, 32.6014, 32.5600)) |>
rowwise() |>
mutate(
geometry = st_sfc(st_point(c(longitude, latitude)))
)
met_egypt =
left_join(met_egypt, met_subregions, by= "subregion")
load("data/shapeFile.RData")
egypt_map <- met_subregions |>
drop_na(latitude, longitude) |>
st_as_sf(coords = c("longitude", "latitude"), crs = st_crs(shapefile))
color_factor <- colorFactor(palette = mypal, domain = egypt_map$subregion)
brown_shades <- c("#8B4513", "#A0522D", "#CD853F", "#D2691E")
random_brown_shades <- replicate(nrow(shapefile), sample(brown_shades, 1))
```
```{r, echo=FALSE}
ui <- fluidPage(
titlePanel("Special Exhibitions: Egypt"),
tags$head(
tags$style(
HTML("
body {
margin: 0; /* Remove default body margin */
}
.container-fluid {
padding-right: 10px; /* Adjust the right padding */
padding-left: 10px; /* Adjust the left padding */
}
.main-container {
display: flex;
}
.sidebar {
flex: 0 0 auto;
width: 300px; /* Adjust the width of the sidebar */
padding: 20px; /* Adjust the padding as needed */
background-color: #f8f9fa; /* Set the background color as needed */
}
.main-panel {
flex: 1;
padding: 50px; /* Adjust the padding as needed */
}
")
)
),
fluidRow(
column(2,
checkboxGroupInput("check_group", "Dynasties:",
choices = dynasties,
selected = dynasties)
),
column(10,
fluidRow(
column(12, br(), HTML("The Met holds a vast collection of over 26,000 Egyptian Artifacts in total. Many of which originate directly from archaelogical digs that staff-members carried out during the beginning of the 20th Century. With such an expansive timeline and collection, come and sate your Egyptology curiosities.")),
column(12, br(), plotlyOutput("plot1")),
column(12, br(), HTML("<p>The early 20th century saw a great expansion in the Mets Egyptian Arts Department corresponding to a larger societal interest in Ancient Egypt in Europe and the United States. The majority of artifacts acquired by the Met during this period come directly from Met led excavations. Additionally, this is a period of great archaeological discoveries even outside of the Met as the Tomb of King Tutankhamen, one of the most important digs of all time, was found in 1922. .</p>")),
column(12, br(), plotlyOutput("plot2")),
column(12, br(), HTML("<p>Ancient Egypt expanded throughout centuries and even millennia. The Met themselves house artifacts from the Paleolithic to the Roman period (ca. 300,000 B.C.–A.D. 4th century). Most artifacts housed were created either in the 1900 to 1700 B.C. range or 1500 to 1300 B.C. range - all over 3000 years ago! </p>")),
column(12, br(), plotlyOutput("plot3")),
column(12, br(), HTML("<p>While approximate years can be helpful to understand an objects origins, Dynasties are a common way Egyptologists speak about Ancient Egypts evolution through the years. The Met houses its greatest number of artifacts from 18th Dynasty through the 21st Dynasty and the 11th through 14th Dynasties. The 18th Dynasty or Thutmosid Dynasty is the first dynasty of the New Kingdom of Egypt where Ancient Egypt was at its peak of power. Moreover, this Dynasty includes many of the most well-known pharaohs from Hatsheput and Nefertiti. An important historical consideration: was more art created during this Dynasty because Egypt was at its peak? Or do we simply know more about the time period because so much art and other artifacts survived; thus, making the period more famous?</p>")),
column(12, br(), HTML('<p style="font-size: 20px; text-align: center; ">Map of Egyptian Artifact Locations</p>')),
column(12, leafletOutput("map")),
column(12, br(), HTML("Ancient Egypt was fundamentally Nilotic in nature. The 'subregions' where the vast majority of Egyptian Artifacts were created or found all lie on or near the Nile. Notably we see that there are hubs in both the Upper (Southern Egypt) and Lower (Northern Egypt) Nile. Interestingly when we map where artifacts from individual Dynasties were found, we often see them spread throughout the Nile, Lower and Upper. This could show that Ancient Egypt was geographically expansive, or it may be evidence that artifacts were moved around Egypt throughout its history. Ex: an artifact originating in the 3rd Dynasty may have been a possession of someone in the 13th. "))
)
)
)
)
# Create Shiny app server
server <- function(input, output) {
output$result <- renderText({
paste("Selected options:", paste(input$check_group, collapse = ", "))
})
filtered_data <- reactive({
selected_dynasties <- input$check_group
met_egypt %>%
filter(dynasty %in% selected_dynasties, subregion %in% c("Abydos", "Amarna (Akhetaten)", "Asasif", "Deir el-Bahri", "Dra Abu el-Naga", "Hierakonpolis (Nekhen)", "Khokha", "Lisht North", "Lisht South", "Malqata", "Medinet Habu", "Oxyrhynchus (Bahnasa)", "Qantir (Piramesse)", "Saqqara", "Sheikh Abd el-Qurna", "Southern Asasif", "Tell Basta (Bubastis)", "Valley of the Kings", "Wadi Gabbanat el-Qurud, Wadi D")) %>%
group_by(subregion, latitude, longitude) %>%
summarize(
n = n()
)
})
output$plot1 <- renderPlotly({
met_egypt |>
group_by(dynasty, accession_year) |>
summarize(n = n()) |>
filter(!dynasty %in% c("Dynasty Range", "No Dynasty Specified"), dynasty %in% input$check_group) |>
arrange(accession_year) |>
plot_ly(x = ~accession_year, y = ~n,
color = ~dynasty,
type = 'scatter',
mode = 'lines+markers',
colors = mypal) %>%
layout(
title= "Artifacts Accessioned by Dynasty Over Time",
xaxis = list(title = "Accession Year"),
yaxis = list(title = "Number of Artifacts"),
legend = list(title = "Dynasty"),
showlegend = TRUE # Set to TRUE if you want to display the legend
)
})
output$plot2 <- renderPlotly({
met_egypt |>
mutate(
year_created= (object_begin_date + object_end_date)/2
) |>
group_by(dynasty, year_created) |>
summarize(n_obs=n()) |>
filter(dynasty %in% input$check_group) |>
plot_ly(x = ~year_created, y = ~n_obs,
color = ~dynasty,
type = 'scatter',
mode = 'lines+markers',
colors = mypal) %>%
layout(
title = "Artifacts Approximate Creation Date Over Time",
xaxis = list(title = "Approximate Creation Date"),
yaxis = list(title = "Number of Artifacts"),
legend = list(title = "Dynasty"),
showlegend = TRUE
)
})
output$plot3 <- renderPlotly({
met_egypt |>
filter(dynasty %in% input$check_group) |>
plot_ly(x = ~dynasty, type = "histogram", color= ~dynasty, legendgroup = ~dynasty, showlegend= TRUE) %>%
layout(
title = "Number of Artifacts per Dynasty",
xaxis = list(title = "Values"),
yaxis = list(title = "Frequency"))
})
output$map <- renderLeaflet({
leaflet() |>
# Add polygons from egypt_shape
addPolygons(
data = shapefile,
fillOpacity = 0.3,
fillColor = random_brown_shades,
weight = 1,
color = "black",
popup = ~NAME_1
) |>
# Add point markers from filtered_data
addCircleMarkers(
data = filtered_data(), # Note the use of () to call the reactive expression
fillColor = ~color_factor(filtered_data()$subregion),
radius = ~sqrt(filtered_data()$n),
popup = ~paste("Subregion: ", filtered_data()$subregion, "<br>Number: ", filtered_data()$n),
fillOpacity = 1.0,
stroke = FALSE
) |>
# Add a legend for the point markers
addLegend("bottomright",
colors = mypal[1:length(unique(filtered_data()$subregion))],
labels = unique(filtered_data()$subregion),
opacity = 0.5) |>
# Set the tile layer (you can choose a different one)
addProviderTiles("Stamen.TonerLite")
})
}
# Run Shiny app
shinyApp(ui, server)
```