Code Snippets

General Imports

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
from great import test_df

Matplotlib: list all fonts

def all_fonts():
    return set([f.name for f in mpl.font_manager.fontManager.ttflist])

Matplotlib: three-dimensional surface plot

from mpl_toolkits.mplot3d import Axes3D
from matplotlib.colors import LightSource

fig = plt.figure()
ax = fig.gca(projection='3d')

# Test data: Matlab `peaks()`
x, y = np.mgrid[-3:3:150j,-3:3:150j]
z =  3*(1 - x)**2 * np.exp(-x**2 - (y + 1)**2) \
   - 10*(x/5 - x**3 - y**5)*np.exp(-x**2 - y**2) \
   - 1./3*np.exp(-(x + 1)**2 - y**2)

# create light source object.
ls = LightSource(azdeg=0, altdeg=65)
# shade data, creating an rgb array.
rgb = ls.shade(z, plt.cm.RdYlBu)
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, linewidth=0,
                       antialiased=False, facecolors=rgb)

Pandas: named functions and columns in agg

df = test_df()
df['D'] = np.random.choice(list('ABCDE'), len(df))
# name=(col, func)
df.groupby('D').agg(min_A=('A', np.min), one=('B', lambda x : 1))

# col: ((name, func), ...)
df.groupby('D').agg({'A':[['AMean', np.mean], ['ASum', np.sum]],
                     'B':[['BMean', np.mean], ['BMin', np.min]]})

posted 2022-01-28 | tags: python, programming, code, snippets

Share on