40 lines
996 B
Python
40 lines
996 B
Python
import matplotlib.pyplot as plt
|
|
import pandas as pd
|
|
import numpy as np
|
|
import seaborn as sns
|
|
|
|
|
|
def set_size(width, fraction=1, subplots=(1, 1)):
|
|
"""Set figure dimensions to avoid scaling in LaTeX.
|
|
|
|
Parameters
|
|
----------
|
|
width: float
|
|
Document textwidth or columnwidth in pts
|
|
fraction: float, optional
|
|
Fraction of the width which you wish the figure to occupy
|
|
|
|
Returns
|
|
-------
|
|
fig_dim: tuple
|
|
Dimensions of figure in inches
|
|
"""
|
|
# Width of figure (in pts)
|
|
fig_width_pt = width * fraction
|
|
|
|
# Convert from pt to inches
|
|
inches_per_pt = 1 / 72.27
|
|
|
|
# Golden ratio to set aesthetic figure height
|
|
# https://disq.us/p/2940ij3
|
|
golden_ratio = (5**.5 - 1) / 2
|
|
|
|
# Figure width in inches
|
|
fig_width_in = fig_width_pt * inches_per_pt
|
|
# Figure height in inches
|
|
fig_height_in = fig_width_in * golden_ratio * (subplots[0] / subplots[1])
|
|
|
|
fig_dim = (fig_width_in, fig_height_in)
|
|
|
|
return fig_dim
|