-
-
Save dlithio/6781ea40ba86eabd93c6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
import matplotlib as mpl | |
mpl.use('pgf') | |
def figsize(scale): | |
fig_width_pt = 469.755 # Get this from LaTeX using \the\textwidth | |
inches_per_pt = 1.0/72.27 # Convert pt to inch | |
golden_mean = (np.sqrt(5.0)-1.0)/2.0 # Aesthetic ratio (you could change this) | |
fig_width = fig_width_pt*inches_per_pt*scale # width in inches | |
fig_height = fig_width*golden_mean # height in inches | |
fig_size = [fig_width,fig_height] | |
return fig_size | |
pgf_with_latex = { # setup matplotlib to use latex for output | |
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex | |
"text.usetex": True, # use LaTeX to write all text | |
"font.family": "serif", | |
"font.serif": [], # blank entries should cause plots to inherit fonts from the document | |
"font.sans-serif": [], | |
"font.monospace": [], | |
"axes.labelsize": 10, # LaTeX default is 10pt font. | |
"font.size": 10, # UserWarning: text.fontsize is deprecated and replaced with font.size | |
"legend.fontsize": 8, # Make the legend/label fonts a little smaller | |
"xtick.labelsize": 8, | |
"ytick.labelsize": 8, | |
"figure.figsize": figsize(0.9), # default fig size of 0.9 textwidth | |
"pgf.preamble": [ | |
r"\usepackage[utf8x]{inputenc}", # use utf8 fonts becasue your computer can handle it :) | |
r"\usepackage[T1]{fontenc}", # plots will be generated using this preamble | |
] | |
} | |
mpl.rcParams.update(pgf_with_latex) | |
import matplotlib.pyplot as plt | |
# I make my own newfig and savefig functions | |
def newfig(width): | |
plt.clf() | |
fig = plt.figure(figsize=figsize(width)) | |
ax = fig.add_subplot(111) | |
return fig, ax | |
def savefig(filename): | |
plt.tight_layout(.4) # Ensures that everything fits http://matplotlib.org/users/tight_layout_guide.html | |
plt.savefig('{}.pgf'.format(filename)) | |
plt.savefig('{}.pdf'.format(filename)) | |
# Simple plot | |
fig, ax = newfig(0.6) | |
def ema(y, a): | |
s = [] | |
s.append(y[0]) | |
for t in range(1, len(y)): | |
s.append(a * y[t] + (1-a) * s[t-1]) | |
return np.array(s) | |
y = [0]*200 | |
y.extend([20]*(1000-len(y))) | |
s = ema(y, 0.01) | |
ax.plot(s) | |
ax.set_xlabel('X Label') | |
ax.set_ylabel('EMA') | |
savefig('ema') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment