This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/plotting/lecture/outlier.py

37 lines
1022 B
Python

import numpy as np
import matplotlib.pyplot as plt
plt.xkcd()
fig = plt.figure( figsize=(5,3) )
# the data:
n = 50
rng = np.random.RandomState(4637281)
x = rng.rand(n)*9.0+0.5
y = rng.randn(n)*1.0+4.0
# plot it:
ax = fig.add_subplot( 1, 1, 1 )
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
ax.set_xlim(0, 10.0)
ax.set_ylim(0.0, 10.0)
ax.set_xticks( np.arange(0, 11, 2))
ax.set_yticks( np.arange(0, 11, 2))
ax.set_xlabel('Time [Days]')
ax.set_ylabel('Mass [kg]')
outlier = (3.3, 8.6)
ax.annotate('Outlier',
xy=(outlier[0]+0.2, outlier[1]), xycoords='data',
xytext=(5.4, 9.5), textcoords='data', ha='left',
arrowprops=dict(arrowstyle="->", relpos=(0.0,0.5),
connectionstyle="angle3,angleA=0,angleB=10") )
ax.scatter(x, y, s=50, c='b', zorder=5)
ax.scatter(outlier[0], outlier[1], s=80, c='#CC0000', zorder=10)
plt.tight_layout();
plt.savefig('outlier.pdf')
#plt.show();