Pull out set_size for figures into own module

This commit is contained in:
Tobias Eidelpes 2023-02-28 17:13:54 +01:00
parent 70df977434
commit 538c511d25

View File

@ -0,0 +1,39 @@
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