Seaborn is visualization library based on matplotlib (and complementary to matplotlib, you should really understand matplotlib first). It basically makes your work easier and prettier. The library is not really complicated and broad but it makes some thing for you, things that you would have to do in matplotlib on your own.
Seaborn works very well with libraries used in Python for data analysis (pandas, numpy, scipy, statsmodels) and may be used easily in Jupyter notebook for plots imaging. The most frequently mentioned advantage of seaborn are built-in themes. Well… it helps people who don’t know how to combine different colors to make plots aesthetic. Second thing is that functions do really nice plots that try to show something useful even when called with a minimal set of arguments. However, as for matplotlib you have almost endless number of possibilities to adjust your plots.
Additional information about seaborn can be find here: https://seaborn.pydata.org/
Installation is pretty easy:
pip install seaborn
conda install seaborn
Additionall info about installation (including development version of seaborn) can be found here: http://seaborn.pydata.org/installing.html
They did really nice job also when comes to documentation and tutorials (e.g. https://seaborn.pydata.org/tutorial.html)
My favorite thing about seaborn? I would say seaborn.distplot function. I usually do two visualizations to look at data before working with it – scatter plot and distribution. Scatter plot is probably easy to obtain in any visualization lib you work with, as is with matplotlib. However to see distribution along with KDE plot, I recommend seaborn function displot.
Here are some examples: https://seaborn.pydata.org/generated/seaborn.distplot.html?highlight=distplot#seaborn.distplot
Basically, all you need to do to have your data in array, e.g. as pandas DataFrame column
import seaborn as sns ax = sns.distplot(df['column name'])
To try with example data, you can try plotting normally distributed data:
import seaborn as sns, numpy as np x = np.random.randn(100) ax = sns.distplot(x)