<jupyter_start><jupyter_text>Wobbly-sided 'Escherian' squaresThis is actually hard to make by hand. Some careful coding would be needed to make a parameterisable function to generate such tiles.<jupyter_code>spacing = 400
unit = TileUnit(crs = 2193, spacing = spacing)
d = spacing / 2

x1 = np.linspace(-d, d, 50, endpoint = False)
y1 = [-d - d/2 * np.sin(x/d * np.pi) for x in x1]
edge1 = [Point(x, y) for x, y in zip(x1, y1)]
edge3 = [translate(p, 0, 2*d) for p in edge1]
edge3.reverse()

y2 = x1.copy()
x2 = [ d + d/2 * np.sin(y/d * np.pi) for y in y2]
edge2 = [Point(x, y) for x, y in zip(x2, y2)]
edge4 = [translate(p, -2*d, 0) for p in edge2]
edge4.reverse()

tile1 = translate(
    scale(Polygon(edge1 + edge2 + edge3 + edge4), 0.5, 0.5), -d/2, -d/2)
tile2 = translate(tile1, d, 0)
tile3 = translate(tile2, 0, d)
tile4 = translate(tile3, -d, 0)

tile = geopandas.GeoDataFrame(
    geometry = geopandas.GeoSeries([tile1, tile2, tile3, tile4]),
    data = {"element_id": list("abcd")}, crs = ak.crs)

ax = tile.plot(column = "element_id", edgecolor = "w")
unit.tile.plot(ax = ax, facecolor = "#0000", edgecolor = "k")
unit.elements = tile
tiling = Tiling(unit, ak, id_var = "DZ2018")
t30 = tiling.get_tiled_map(rotation = 30, prioritise_tiles = True)
fig = pyplot.figure(figsize = (24, 15))
ax = fig.add_subplot(111)
# ak.plot(ax = ax, facecolor = "#006633", linewidth = 0)

strands = set(t30.element_id)
cols = [x for x in t30.columns if "Rank" in x]
cmaps = ("viridis", "plasma_r", "Spectral", "PRGn")
cmaps = ("Greys", "Greys", "Greys", "Greys")

for strand, col, cmap in zip(strands, cols, cmaps):
    t30[t30.element_id == strand].plot(ax = ax, column = col, cmap = cmap, k = 100, scheme = "equal_interval", linewidth = 0)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.170261066969353, 'fraction_numerical': 0.055051078320090804, 'mean_word_length': 4.247023809523809, 'pattern_counts': {'":': 1, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '563506', 'license': 'MIT', 'n_tokens_mistral': 781, 'n_tokens_neox': 725, 'n_words': 208, 'path': 'weavingspace/example-tiles-wobbly-escherian.ipynb', 'repo_name': 'DOSull/weaving-space', 'size': '1762'}