plt.figure(figsize=(15, 6))
plt.title('Particle Size distribution curve plot by Anand Prabhakar', fontsize=15)
plt.scatter(logs, p_finer,c='r', s=20, cmap=plt.cm.rainbow)
plt.scatter(Dx, Dy, c = 'g', s=80)
plt.plot(logs, p_finer,c='b')
plt.legend(['observed points', 'Dx points', 'curve'], loc='lower right')
plt.annotate('D60 => 1.23', xy =(1.23, 60),xytext =(1,70),arrowprops = dict(facecolor ='r',shrink = 1))
plt.annotate('D30 => 0.46', xy =(0.46, 30),xytext =(0.6,20), arrowprops = dict(facecolor ='y'))
plt.annotate('D10 => 0.77', xy =(0.77, 10),xytext =(0.8,20), arrowprops = dict(facecolor ='r'))
plt.xlabel("log10(n); (where n = sieve size))",fontsize=12)
plt.ylabel("% finer",fontsize=12)
plt.hlines([10], 0,0.77, colors='y')
plt.hlines([30], 0,0.46, colors='y')
plt.hlines([60], 0,1.23, colors='y')
plt.vlines([0.77], 0,10, colors='r')
plt.vlines([0.46], 0,30, colors='r')
plt.vlines([1.23], 0,60, colors='r')
plt.show()