The Laws Visualized
Created by Lorin Bruckner

Data Visualization Dashboard
The North Carolina Jim Crow Laws dashboard displays the number of laws on a county map, line chart and bar chart. Users can filter the laws by year, topic and county and click on individual laws to read the full text.
How to Use the Dashboard
To filter laws by year, make a selection from the dropdown menu at the top of the dashboard or click a point on the line chart.
To filter laws by topic, make a selection from the dropdown menu at the top of the dashboard, or click on a bar in the bar chart.
To filter laws by county, make a selection from the dropdown menu at the top of the dashboard or click on a county in the map.
A preview of each law is shown in a grey box on the right side of the dashboard. Click on the magnifying glass icon to read the full text of the law.
Rolling over any of the charts displays a pop-up box with more information.
How Laws Were Categorized by Topic
Topics were identified through a Python script that uses regular expressions to search each law for specific keywords. The keywords were chosen by examining the results of multiple topic models and picking terms that were given the highest weights or scores by the models. It should be noted that a single law could be categorized under multiple topics depending on the keywords it contained.
This process allowed for closer control of topic classification and prevented a high number of false positives. However, any law that did not contain one of the selected keywords was not assigned a topic, and therefore, many laws remain unclassified.
How Laws Were Located on the Map
A Python script using regular expressions found laws that mentioned names of towns and/or counties. Laws that could not be assigned to a particular location as well as laws that involved multiple locations are not displayed on the map, but they are included in the line and bar charts. Selecting “Unknown/Multiple” from the “County” dropdown menu will filter the dashboard to display only those laws.
Law locations were assigned through an automated process. Please let us know if you notice any errors.
Dashboard Tables for Accessibility
Number of North Carolina Jim Crow Laws by Topic
Please note that a law can be categorized under more than one topic.
Topic | Number of Laws |
Adoption & Orphanages | 26 |
Children | 55 |
Death & Deathcare | 39 |
Education | 1159 |
Elections | 52 |
Health, Disabilities & Mental Care | 111 |
Incarceration | 21 |
Indigenous Populations | 109 |
Religion | 27 |
Taxes | 132 |
Uncategorized | 518 |
Number of North Carolina Jim Crow Laws by Year
Year | Number of Laws |
1866/67 | 10 |
1868 | 2 |
1868/69 | 4 |
1869/70 | 3 |
1870/71 | 1 |
1871/72 | 7 |
1872/73 | 13 |
1873/74 | 5 |
1874/75 | 5 |
1876/77 | 19 |
1879 | 7 |
1880 | 3 |
1881 | 30 |
1883 | 104 |
1885 | 49 |
1887 | 29 |
1889 | 55 |
1891 | 68 |
1893 | 40 |
1895 | 69 |
1897 | 117 |
1899 | 119 |
1900 | 5 |
1901 | 127 |
1903 | 131 |
1905 | 89 |
1907 | 98 |
1908 | 3 |
1909 | 72 |
1911 | 70 |
1913 | 67 |
1915 | 45 |
1917 | 44 |
1919 | 29 |
1921 | 28 |
1921 extra session | 5 |
1923 | 33 |
1924 | 9 |
1925 | 21 |
1927 | 26 |
1929 | 28 |
1931 | 17 |
1933 | 13 |
1935 | 14 |
1936/37 | 19 |
1938/39 | 16 |
1938/1939 | 7 |
1941 | 14 |
1943 | 19 |
1945 | 22 |
1947 | 18 |
1949 | 18 |
1951 | 6 |
1953 | 11 |
1955 | 8 |
1956/57 | 12 |
1959 | 5 |
1961 | 5 |
1963 | 18 |
1963/65 | 7 |
1965/66/67 | 1 |
Number of North Carolina Jim Crow Laws by County
County Name | Number of Laws |
Unknown/Multiple | 908 |
Alamance | 15 |
Alexander | 1 |
Anson | 11 |
Ashe | 5 |
Beaufort | 18 |
Bertie | 9 |
Bladen | 1 |
Brunswick | 3 |
Buncombe | 20 |
Burke | 7 |
Cabarrus | 10 |
Caldwell | 10 |
Camden | 2 |
Carteret | 15 |
Caswell | 17 |
Catawba | 8 |
Chatham | 6 |
Cherokee | 6 |
Chowan | 17 |
Clay | 6 |
Cleveland | 12 |
Columbus | 21 |
Craven | 12 |
Cumberland | 18 |
Currituck | 1 |
Davidson | 7 |
Davie | 3 |
Duplin | 8 |
Durham County | 6 |
Edgecombe | 10 |
Forsyth | 35 |
Franklin | 14 |
Gaston | 15 |
Gates | 2 |
Granville | 20 |
Guilford | 25 |
Halifax | 20 |
Hanover | 2 |
Harnett | 5 |
Haywood | 22 |
Henderson | 13 |
Hertford | 2 |
Hoke | 1 |
Hyde | 7 |
Iredell | 11 |
Johnston | 33 |
Jones | 1 |
Lee | 8 |
Lenoir | 17 |
Lincoln | 1 |
Macon | 4 |
Martin | 10 |
McDowell | 2 |
Mecklenburg | 24 |
Montgomery | 3 |
Moore | 16 |
Nash | 8 |
New Hanover | 2 |
Northampton | 9 |
Onslow | 2 |
Orange | 7 |
Pamlico | 9 |
Pasquotank | 2 |
Pender | 3 |
Perquimans | 5 |
Person | 13 |
Pitt | 12 |
Polk | 2 |
Randolph | 36 |
Richmond | 14 |
Robeson | 55 |
Rockingham | 11 |
Rowan | 11 |
Rutherford | 7 |
Sampson | 22 |
Scotland | 8 |
Stanly | 6 |
Stokes | 2 |
Surry | 22 |
Swain | 4 |
Transylvania | 3 |
Tyrrell | 4 |
Union | 26 |
Vance | 17 |
Wake | 32 |
Warren | 6 |
Washington | 5 |
Watanga | 1 |
Wayne | 22 |
Wilkes | 17 |
Wilson | 13 |
Yadkin | 5 |
Yancey | 1 |
Durham | 3 |
Jackson | 2 |
Madison | 4 |
Accessibility Statement
The University of North Carolina at Chapel Hill believes everyone in our community deserves equal access to information. We are committed to creating an inclusive digital experience. If you are unable to access this information, please send us an accessibility remediation request.