%matplotlib inline
import numpy as np
import pandas as pd
import pandas.tools.rplot as rplot
import matplotlib.pyplot as plt
import seaborn as sns
c:\users\vdbosscj\scipy\pandas-joris\pandas\tools\rplot.py:20: FutureWarning: The rplot trellis plotting interface is deprecated and will be removed in a future version. We refer to external packages like seaborn for similar but more refined functionality. See our docs http://pandas.pydata.org/pandas-docs/stable/visualization.html#rplot for some example how to convert your existing code to these packages. "packages.", FutureWarning)
print "pandas: ", pd.__version__
print "seaborn: ", sns.__version__
pandas: 0.15.2-254-g85703a7 seaborn: 0.5.1
tips_data = pd.read_csv('http://wesmckinney.com/files/tips.csv')
plot = rplot.RPlot(tips_data, x='total_bill', y='tip')
plot.add(rplot.TrellisGrid(['sex', 'smoker']))
plot.add(rplot.GeomHistogram())
plot.render();
g = sns.FacetGrid(tips_data, row="sex", col="smoker")
g.map(plt.hist, "total_bill")
<seaborn.axisgrid.FacetGrid at 0x18234ef0>
plot = rplot.RPlot(tips_data, x='total_bill', y='tip')
plot.add(rplot.TrellisGrid(['sex', 'smoker']))
plot.add(rplot.GeomDensity())
plot.render();
g = sns.FacetGrid(tips_data, row="sex", col="smoker")
g.map(sns.kdeplot, "total_bill")
<seaborn.axisgrid.FacetGrid at 0x187b2fd0>
plot = rplot.RPlot(tips_data, x='total_bill', y='tip')
plot.add(rplot.TrellisGrid(['sex', 'smoker']))
plot.add(rplot.GeomScatter())
plot.add(rplot.GeomPolyFit(degree=2))
plot.render();
The scatter plot:
g = sns.FacetGrid(tips_data, row="sex", col="smoker")
g.map(plt.scatter, "total_bill", "tip")
<seaborn.axisgrid.FacetGrid at 0x183e7eb8>
With regression line, using the dedicated regplot
function of seaborn:
g = sns.FacetGrid(tips_data, row="sex", col="smoker", margin_titles=True)
g.map(sns.regplot, "total_bill", "tip", order=2)
<seaborn.axisgrid.FacetGrid at 0x1b34c940>
plot = rplot.RPlot(tips_data, x='total_bill', y='tip')
plot.add(rplot.TrellisGrid(['sex', 'smoker']))
plot.add(rplot.GeomScatter())
plot.add(rplot.GeomDensity2D())
plot.render();
The colors above are not correct, because seaborn altered the default colormaps. See http://pandas.pydata.org/pandas-docs/stable/visualization.html#trellis-plotting-interface for correct colors
g = sns.FacetGrid(tips_data, row="sex", col="smoker")
g.map(plt.scatter, "total_bill", "tip")
g.map(sns.kdeplot, "total_bill", "tip")
<seaborn.axisgrid.FacetGrid at 0x1a533da0>
plot = rplot.RPlot(tips_data, x='total_bill', y='tip')
plot.add(rplot.TrellisGrid(['sex', '.']))
plot.add(rplot.GeomHistogram())
plot.render();
g = sns.FacetGrid(tips_data, col="sex")
g.map(plt.hist, "total_bill")
<seaborn.axisgrid.FacetGrid at 0x1b687048>
g = sns.FacetGrid(tips_data, row="sex")
g.map(plt.hist, "total_bill")
<seaborn.axisgrid.FacetGrid at 0x19b57630>
plot = rplot.RPlot(tips_data, x='tip', y='total_bill')
plot.add(rplot.TrellisGrid(['sex', 'smoker']))
plot.add(rplot.GeomPoint(size=80.0, colour=rplot.ScaleRandomColour('day'), shape=rplot.ScaleShape('size'), alpha=1.0))
plot.render();
g = sns.FacetGrid(tips_data, row="sex", col="smoker", hue="day")
g.map(plt.scatter, "tip", "total_bill")
g.add_legend()
Here, in the seaborn example, the fourth variable is not included