
上QQ阅读APP看书,第一时间看更新
Combining box plots and kernel density plots with violin plots
Violin plots combine box plots and kernel density plots or histograms in one type of plot. Seaborn and matplotlib both offer violin plots. We will use Seaborn in this recipe on z-scores of weather data. The z-scoring is not essential, but without it, the violins will be more spread out.
How to do it...
- Import the required libraries as follows:
import seaborn as sns from dautil import data import matplotlib.pyplot as plt
- Load the weather data and calculate z-scores:
df = data.Weather.load() zscores = (df - df.mean())/df.std()
- Plot a violin plot of the z-scores:
%matplotlib inline plt.figure() plt.title('Weather Violin Plot') sns.violinplot(zscores.resample('M')) plt.ylabel('Z-scores')
Refer to the following plot for the first violin plot:
- Plot a violin plot of rainy and dry (the opposite of rainy) days against wind speed:
plt.figure() plt.title('Rainy Weather vs Wind Speed') categorical = df categorical['RAIN'] = categorical['RAIN'] > 0 ax = sns.violinplot(x="RAIN", y="WIND_SPEED", data=categorical)
Refer to the following plot for the second violin plot:

The source code is available in the violins.ipynb
file in this book's code bundle.
See also
- The Seaborn documentation about violin plots at https://web.stanford.edu/~mwaskom/software/seaborn/generated/seaborn.violinplot.html (retrieved July 2015)