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...

  1. Import the required libraries as follows:
    import seaborn as sns
    from dautil import data
    import matplotlib.pyplot as plt
  2. Load the weather data and calculate z-scores:
    df = data.Weather.load()
    zscores = (df - df.mean())/df.std()
  3. 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:

    How to do it...
  4. 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:

How to do it...

The source code is available in the violins.ipynb file in this book's code bundle.

See also

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset