New England is a beautiful place, but its place-names aren’t the most lyrical, with an awful lot of toponymic stealing from Old England. What’s more, New England place-names aren’t even uniquely plagiarized: 655 towns and cities in New England have a counterpart with the same name elsewhere in the six-state area. Here they all are in a single GIF:

A few notes:
- There’s just one name that occurs in all six states: Warren. There are also six Lincolns in New England, but two of them are in Maine.
- This only accounts for city/towns that have jurisdictional status, so, although you’ll find Roxbury in Vermont, New Hampshire, Maine, and Connecticut, you won’t find it in Massachusetts, because the former Roxbury has been absorbed into the city of Boston
- Some place-names appear twice in the same state; in Maine, Rangeley town and Rangeley plantation are separate jurisdictions right next to each other.
Here’s an interactive map of the same data (full-size here).
And, for the curious, here’s the Python code I used to produce the frames of the GIF above.
import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
towns = gpd.read_file('towns.json')
towns = towns.to_crs(epsg=3395)
counts = pd.read_csv('counts.csv')
fig = plt.figure()
bgAx = fig.add_subplot(1,1,1)
fig.set_size_inches(2,2)
bgAx.set_axis_off()
bgAx.set_aspect('equal')
towns.plot(ax=bgAx, color='#eeeeee', edgecolor='#dcdcdc', linewidth=0.01)
for index,town in counts.sort_values('name').iterrows():
fgAx = fig.add_subplot(1,1,1,sharex=bgAx,sharey=bgAx)
fgAx.set_axis_off()
thisTown = town['name']
townGeo = towns.loc[towns['NAME'] == thisTown]
thisPlot = townGeo.plot(ax=fgAx, color='red', edgecolor='none')
fgAx.set_title(thisTown,fontdict={'fontweight':'bold','fontsize':5})
outFile = './frames/' + thisTown + '.tif'
plt.savefig(outFile,dpi=400,bbox_inches='tight')
fgAx.cla()