import numpy as np
import matplotlib.pyplot as plt
from plotstyle import *

rng = np.random.RandomState(981)
x = rng.randn( 40, 10 )

fig, ax = plt.subplots()
ax.set_xlabel('Experiment')
ax.set_ylabel('x')
ax.set_ylim(-4.0, 4.0)
ax.annotate('Median',
            xy=(3.9, 0.0), xycoords='data',
            xytext=(3.5, -2.7), textcoords='data', ha='right',
            arrowprops=dict(arrowstyle="->", relpos=(0.8,1.0),
            connectionstyle="angle3,angleA=-110,angleB=60") )
ax.annotate('1. quartile',
            xy=(5.8, -0.9), xycoords='data',
            xytext=(5.5, -3.4), textcoords='data', ha='right',
            arrowprops=dict(arrowstyle="->", relpos=(0.9,1.0),
            connectionstyle="angle3,angleA=30,angleB=70") )
ax.annotate('3. quartile',
            xy=(6.1, 1.1), xycoords='data',
            xytext=(6.5, 3.0), textcoords='data', ha='left',
            arrowprops=dict(arrowstyle="->", relpos=(0.0,0.0),
            connectionstyle="angle3,angleA=30,angleB=70") )
ax.annotate('minimum',
            xy=(6.1, -1.9), xycoords='data',
            xytext=(7.2, -3.3), textcoords='data', ha='left',
            arrowprops=dict(arrowstyle="->", relpos=(0.0,0.5),
            connectionstyle="angle3,angleA=10,angleB=100") )
ax.annotate('maximum',
            xy=(5.9, 2.7), xycoords='data',
            xytext=(4.9, 3.5), textcoords='data', ha='right',
            arrowprops=dict(arrowstyle="->", relpos=(1.0,0.5),
            connectionstyle="angle3,angleA=0,angleB=120") )
ax.boxplot(x, whis=100.0)
plt.savefig('boxwhisker.pdf')