How can I overlay two graphs in Seaborn? I have two columns in my data I would like to have them in the same graph. How can I do it preserving the labeling for both graphs.
How can I overlay two graphs in Seaborn?
seaborn function that operate on a single Axes can take one as an argument.
For instance, the docs to seaborn.kdeplot
include:
ax : matplotlib axis, optional
Axis to plot on, otherwise uses current axis
So if you did:
df = function_to_load_my_data()
fig, ax = plt.subplots()
You could then do:
seaborn.kdeplot(df['col1'], ax=ax)
seaborn.kdeplot(df['col2'], ax=ax)
Thanks, the only downside is the labeling is not for both graphs. –
Screw
@DavoudTaghawi-Nejad well you have the
ax
object, so you can do anything at that point, really. –
Mandi How would I add a legend in this case? –
Fakir
@Fakir matplotlib.org/tutorials/intermediate/legend_guide.html –
Mandi
At least in Seaborn 0.11, the last plot still overwrites and excludes prior plots –
Embosom
One solution is to introduce a secondary axis:
fig, ax = plt.subplots()
sb.regplot(x='round', y='money', data=firm, ax=ax)
ax2 = ax.twinx()
sb.regplot(x='round', y='dead', data=firm, ax=ax2, color='r')
sb.plt.show()
it would probably help to have a legend in this case. to do so you can use the label-parameter in seaborn functions but apparently you need to call plt.legend() after each plotting function –
Intrigue
The data is about Private vs Public collage data but works, as we can see we load all the global parameters to a seaborn object and later we map the charts to the same pane.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('College_Data',index_col=0)
g = sns.FacetGrid(df,hue='Private',palette='coolwarm',size=6,aspect=2)
g.map(plt.hist,'Outstate',bins=20,alpha=0.7)
© 2022 - 2024 — McMap. All rights reserved.
regplot
s by setting up aFacetGrid
and add layers bymap()
ing. stackoverflow.com/questions/48145924 – Ambrosial