Skip to content

Instantly share code, notes, and snippets.

@nicoguaro
nicoguaro / cst_paper.mplstyle
Created September 9, 2024 20:55
Stylesheet for matplotlib for 2018 CCST paper
# Stylesheet for matplotlib
#
# Author: Nicolas Guarin-Zapata
# Date: September, 2018
### Math Text
mathtext.fontset : cm
### Text
text.color : 757575
@nicoguaro
nicoguaro / dragon_curve.py
Created August 23, 2024 04:57
Generate a dragon curve
# -*- coding: utf-8 -*-
"""
Generate a dragon curve
@author: Nicolás Guarín-Zapata
@date: July 2024
"""
import os
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import trapezoid, simpson, quad
repo = "https://raw.githubusercontent.com/nicoguaro/matplotlib_styles/master"
style = repo + "/styles/clean.mplstyle"
plt.style.use(style)
plt.rcParams["font.size"] = 20
plt.rcParams["lines.linewidth"] = 3
@nicoguaro
nicoguaro / flips_coins.py
Created June 7, 2024 21:38
Flip a fair coin 100 times—it gives a sequence of heads (H) and tails (T). For each HH in the sequence of flips, Alice gets a point; for each HT, Bob does, so e.g. for the sequence THHHT Alice gets 2 points and Bob gets 1 point. Who is most likely to win?
# -*- coding: utf-8 -*-
"""
Flip a fair coin 100 times—it gives a sequence of heads (H)
and tails (T). For each HH in the sequence of flips, Alice
gets a point; for each HT, Bob does, so e.g. for the
sequence THHHT Alice gets 2 points and Bob gets 1 point.
Who is most likely to win?
https://x.com/littmath/status/1769044719034647001
@nicoguaro
nicoguaro / environment.yml
Last active June 18, 2024 02:04
Visualize origami configurations using Matplotlib.
name: ori-py
channels:
- conda-forge
dependencies:
- python
- numpy
- scipy
- matplotlib
- jupyterlab
- pyvista
@nicoguaro
nicoguaro / hermite_quintic.ipynb
Created May 17, 2024 22:49
Hermite interpolation using quintic polynomials
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@nicoguaro
nicoguaro / poly_fit.py
Created January 23, 2024 14:40
Polynomial fitting example in NumPy
import numpy as np
from numpy.polynomial import Polynomial
rng = np.random.default_rng()
x = np.arange(10)
y = np.arange(10) + 0.01*rng.standard_normal(10)
p_fitted = np.polynomial.Polynomial.fit(x, y, deg=1)
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
#%%
f = open('output_file.txt', 'r', encoding="utf8")
text = f.read()
f.close()
@nicoguaro
nicoguaro / 01a_fem1d_global_sym.ipynb
Last active September 29, 2023 01:57
Notebooks con implementaciones sencillas del método de elementos finitos para la ecuación de Poisson y de Helmholtz.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@nicoguaro
nicoguaro / heart.py
Created March 15, 2023 23:58
Heart surface
import numpy as np
import matplotlib.pyplot as plt
from skimage import measure
y, x, z = np.mgrid[-2:2:100j, -2:2:100j, -2:2:100j]
f = (x**2 + 9/4*y**2 + z**2 - 1)**3 - x**2 * z**3 - 9/80*y**2*z**3
verts, faces, _, _ = measure.marching_cubes(f, 0, spacing=(0.1, 0.1, 0.1))
fig = plt.figure()