In seaborn using sns.set() seems to be changing the background color of the
plot.
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
df = pd.DataFrame({"type":["A", "A", "A", "A", "B", "B", "B", "B"],
"value":[11, 14, 13, 16, 9, 8, 6, 10],
"date":["t1", "t2", "t3", "t4", "t1", "t2", "t3", "t4"]})
grid = sns.FacetGrid(df, size=12.5, hue="type", aspect=2)
grid.map(plt.plot, "date", "value")
plt.show()

Then if I run sns.set(font_scale=2) (or just sns.set()), repeating the
same plot I get
grid = sns.FacetGrid(df, size=12.5, hue="type", aspect=2)
grid.map(plt.plot, "date", "value")
plt.show()

This seems like somewhat odd behaviour to me. I would prefer the second plotting configuration but would like to obtain this without making an arbitrary call to sns.set(), unless of course this is the recommended approach.
Relevant version info
print("matplotlib version: %s" % matplotlib.__version__)
print("seaborn version: %s" % sns.__version__)
matplotlib version: 2.1.0
seaborn version: 0.8.0
Looking at the documentation, it seems that sns.set() was called on import in versions < 0.8.
The reason why calling sns.set without any arguments changes your plot, is that it has some default parameters. Looking at the documentation:
seaborn.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None)
So, using sns.set(font_scale=2) will change the fontscale, but will also change everything else to the default arguments of sns.set
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With