37 lines
1022 B
Python
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();
|