import matplotlib.pylab as plt
import dclab
ds = dclab.new_dataset("data/example.rtdc")
X, Y, Z = ds.get_kde_contour(xax="area_um", yax="deform")
Z /= Z.max()
quantiles = [.1, .5, .75]
levels = dclab.kde_contours.get_quantile_levels(density=Z,
                                                x=X,
                                                y=Y,
                                                xp=ds["area_um"],
                                                yp=ds["deform"],
                                                q=quantiles,
                                                )

ax = plt.subplot(111, title="contour lines")
sc = ax.scatter(ds["area_um"], ds["deform"], c="lightgray", marker=".", zorder=1)
cn = ax.contour(X, Y, Z,
                levels=levels,
                linestyles=["--", "-", "-"],
                colors=["blue", "blue", "darkblue"],
                linewidths=[2, 2, 3],
                zorder=2)

ax.set_xlabel(dclab.dfn.get_feature_label("area_um"))
ax.set_ylabel(dclab.dfn.get_feature_label("deform"))
ax.set_xlim(0, 150)
ax.set_ylim(0.01, 0.12)
# label contour lines with percentiles
fmt = {}
for l, q in zip(levels, quantiles):
    fmt[l] = "{:.0f}th".format(q*100)
plt.clabel(cn, fmt=fmt)
plt.show()