Lab Reports, Networks


Early modern English care workers accessed a robust network of herbal pharmacy to provide effective treatment. This project 1) uses vis created using RStudio and Gephi to show how the herbal ingredients in a mid-17th-century medicinal recipe overlapped as co-treatments for physical and emotional wellbeing; and 2) reflects on Gephi’s potential strengths and weaknesses as an open graph vis tool.


Early modern English care practices supported a blended approach to regulating health, incorporating herbal pharmacy and analgesic drugs as needed to ease discomfort. Medicinal recipes primarily used the rhetoric of treating rather than curing an ailment and operated with the awareness that even advanced medical knowledge of the time could not always guarantee a cure. Recipes from extant manuscripts address a broad survey of health complaints ranging from gut inflammation, arthritis, and unwanted pregnancies to epilepsy, depression, and contagious diseases. Though wealthy households could afford to import luxury ingredients like nutmeg, cochineal, and saffron, most recipes used ingredients that could be grown domestically and stored for personal or communal use.

While researching a collection of early modern English cookery manuscripts in the New York Public Library earlier this semester, I was fascinated by the breadth of pharmaceutical knowledge that medicinal recipes displayed. One of the recipes that caught my attention contained instructions to prepare a cordial to treat a variety of serious ailments that are still difficult to treat today, including plague, chickenpox, measles, heartburn and acid reflux, pain associated with childbirth, colic, and seizures in children.

… Take of sage, celandine, rosemary, rue, wormwood, mugwort, roses, pimpernel, tarragon, scabious, agrimony, lemon balm, wood safe, thistle, betony flowers and leaves, centaury tops and flowers, marigold flowers and leaves; of each of these one good handful, then take the root of tormentil, wild celery, elecampane, peony, zedoary, licorice, all clean-scraped, of each of those half an ounce…”

Lady Anne Percy, 1650

**For an in-depth look at my work with the Whitney cookery collection, see Foodways of Early Modern English Empire.

Motivation & Scope

Having written my undergraduate thesis on plague and why it was particularly difficult to treat (and a bit skeptical of a book of recipes I’d already seen advise mixing psychoactive plants with white wine to treat a toothache), I was curious if this recipe actually provided effective treatment for all of its target ailments. As such, even before starting this project, I made a spreadsheet of the ingredients and their medicinal uses circa 1650. After this project came on my radar, though, I focused instead on the versatility of the ingredients as treatments for a range of ailments, and modified the spreadsheet in RStudio for use as a weighted edgelist in so that it could be manipulated in Gephi. Choosing to format the original spreadsheet this way meant that Gephi visualized the twenty-three ingredients as nodes and their co-presence in treatments as edges.

Screenshot of weighted edgelist in .csv format.


In its primary form, my data in Gephi appeared absent of meaning. I started by formatting the layout for readability, using LinLog mode and Prevent Overlap functions to ensure nodes were highly visible and not overwhelmed by edges.

Because I had a small data set, I manually added distinguishing information in Data Laboratory under a “Toxicity class” column. In this column, I ranked each ID by its toxicity, using numerals 1 (most toxic) through 4 (least toxic). Then I colored the different toxicities using stoplight colors: green = no known toxicity, yellow = may cause irritation in small amounts, orange = may be mildly toxic in small amounts, red = may be highly toxic in small amounts. Finally, I linked node size to degree in order to best visualize the density of interactions between toxic and non-toxic nodes.

Nodes sized by degree and colored by toxicity class, manually arranged

Finding 1.1: Edges run most densely between irritants and mild toxicants (yellow ⇔ orange), mild and high toxicants (orange ⇔ red), non-toxicants and non-toxicants (green ⇔ green), and non-toxicants and irritants (green ⇔ yellow). However, edges between irritants and irritants (yellow ⇔ yellow), mild toxicants and mild toxicants (orange ⇔ orange), and high toxicants and non-toxicants (red ⇔ green) appear together much more rarely.

Finding 1.2: Moreover, mild toxicants (orange) are fairly universally of higher degree, while irritants (yellow) and non-toxicants (green) fluctuate.

Analysis: As someone who knows very little about chemical interactions in plants, it’s hard for me to posit an educated guess on why this trend may have occurred. What I do know is that early modern care workers had a large depth and breadth of knowledge about herbal pharmacy that would have included understanding the risks and benefits of ingesting small doses of herbs of varying toxicities. Therefore, it makes sense to me that they would have been aware that small doses of at least one mild toxicant can be beneficial in medicinal treatments if used appropriately, but not in conjunction with each other (essentially, one does the trick!).

However, adding another column in Data Laboratory offered a little insight into this trend:

Finding 2: Herbs with abortifacient properties (left) line up nearly exactly over herbs with toxic properties (right).

Analysis: This overlap surprised me in that it was only nearly exact. I’ve pointed out peony and pimpernel, the two outliers, above. While only an irritant (yellow), peony has significant abortifacient properties; conversely, while a mild toxicant (orange), pimpernel does not possess abortifacient properties. These two exceptions may be part of why (spoiler!) filtering this vis by modularity did not clarify any relationships between data.

The Modularity Problem

After using Data Laboratory to examine what role toxicity class played in co-treatments, I decided to filter my data by coloring nodes by modularity. This divided my data into two communities of nodes, about the same size. However, even as I continued to manipulate the vis, I couldn’t see a narrative starting to take form.

Finding 3.1: Modularity didn’t overlap nicely with toxicity class (and therefore abortifacients and, though this vis didn’t go into it, psychoactive herbs):

Finding 3.2: Nor did it correlate with degree:

Nodes colored by modularity and sized by degree

Analysis: My guess before using the modularity tool was that it would group communities based on toxicity or based on degree, so this result really threw me. If I were to spend more time digging in this data, I’d want to see if modularity was distinguishing by broad kinds of curative categories, maybe something like “anti-inflammatory vs. analgesic properties,” or another biological dichotomy as a factor that governs use in medicinal treatments. That’s my best guess moving forward for now, and maybe if I pick it back up again in the future I’ll be able to read a clearer story then.


Even while working with a data set I liked more than any I used so far, I disliked Gephi as a tool fundamentally because of its unwieldiness as a workspace. Even with access to the Gephi QuickStart tutorial, Martin Grandjean’s  Introduction to Network Analysis and Visualization, and Professor Sula’s detailed notes on how to prepare network data, Gephi took more time to troubleshoot than to produce a clean vis. A feature of the tool I particularly liked was the hover function, where if the user hovered over an icon a description of the icon’s function would pop up— I thought this was the tool’s only user-friendly aspect.

With that said, I’m pleased to have learned how to use the tool to visualize a basic network. It definitely helped me make the mental hurdle from looking at nodes as the center of an analysis to looking at edges as the center of an analysis— I just wish it could have been done with less technical frustration.


“Abortifacient.” Wikipedia. Wikimedia Foundation. Accessed 10 November 2021.

Grandjean, M. 2015. GEPHI – Introduction to Network Analysis and Visualization. Humanities. Martin Grandjean.

“Quick Start.” Gephi NGO. GitHub.

Sula, C. 2021. Preparing network data in R and Refine. Google Doc. Pratt Institute

“Toxicity.” Wikipedia. Wikimedia Foundation. Accessed 10 November 2021.


Percy, Anne. 1650. [Manuscript cookery book]. Whitney cookery collection, Manuscripts and Archives Division, The New York Public Library.