Skip to content

Instantly share code, notes, and snippets.

View cvanelteren's full-sized avatar

Casper van Elteren cvanelteren

View GitHub Profile
@cvanelteren
cvanelteren / matplotlib_animation.ipynb
Last active May 13, 2025 07:32
Exercise EHCO group
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@cvanelteren
cvanelteren / gil_test.nim
Created August 29, 2024 07:57
Releasing the GIL in Nim
import strutils, strformat, os, random, times
import dynlib
import nimpy, nimpy/py_lib, nimpy/py_types
{.pragma: pyfunc, cdecl, gcsafe.}
import locks
import malebolgia, math
import random, os
import chronos
@cvanelteren
cvanelteren / vibrant.py
Created August 10, 2024 16:08
vibrant colormap
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np
def create_continuous_colormap(colors, name='custom_colormap'):
# Define color positions (evenly spaced between 0 and 1)
n = len(colors)
positions = np.linspace(0, 1, n)
# Create a colormap
#!/usr/bin/env bashgit clone --bare [email protected]:cvanelteren/dots.git $HOME/.dotfiles# define config alias locally since the dotfiles
# aren't installed on the system yet
function config {
git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME $@
}# create a directory to backup existing dotfiles to
mkdir -p .dotfiles-backup
config checkout
if [ $? = 0 ]; then
echo "Checked out dotfiles from [email protected]:cvanelteren/dotfiles.git";
else
@cvanelteren
cvanelteren / networkx_with_image.py
Created June 1, 2024 10:52
replace networkx nodes with images
import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
g = nx.krackhardt_kite_graph()
pos = nx.kamada_kawai_layout(g)
example = "unknown.jpg"
fig, ax = plt.subplots()
output_size = 25
@cvanelteren
cvanelteren / annotation_network.py
Created May 29, 2024 09:45
cross_figure annotation
import proplot as plt, cmasher as cmr, pandas as pd,\
numpy as np, os, sys, networkx as nx, warnings,\
re
from pathlib import Path
warnings.simplefilter("ignore")
g = nx.krackhardt_kite_graph()
pos = nx.kamada_kawai_layout(g)
@cvanelteren
cvanelteren / bundle.py
Last active June 16, 2024 08:12
data shader edge bundling
import proplot as plt, networkx as nx, pandas as pd
def bundle(g: nx.Graph, pos: dict):
from datashader.bundling import hammer_bundle
edges = []
for u, v in g.edges():
row = dict(source=u, target=v)
edges.append(row)
edges = pd.DataFrame(edges)
@cvanelteren
cvanelteren / overly_complicated.py
Created February 26, 2024 15:32
dynamic_plot
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
def fill_between_3d(ax,x1,y1,z1,x2,y2,z2,mode=1,c='steelblue',alpha=0.6):
"""
@cvanelteren
cvanelteren / arc_layout.py
Created October 19, 2023 13:04
Networkx simple hive plot
def arc_layout(
G: nx.Graph, subset_key="subset", radius=1, rotation=0, offset=0
) -> dict:
"""Arc layout for networkx
Provides a layout where a multipartite graph is
displayed on a unit circle. This could provide clear
visuals for data that is highly clustered.
Parameters
@cvanelteren
cvanelteren / multilayer_layout.py
Last active January 8, 2024 20:53
Flat multilayer layout networkx
import proplot as plt, cmasher as cmr, pandas as pd, numpy as np, os, sys, networkx as nx, warnings
def multilayer_layout(
G: nx.Graph,
subset_key="layer",
layout=nx.spring_layout,
separation: float = 10.0,
) -> dict:
# set positions