Skip to content

Commit

Permalink
[plot_lifetimes.py]: Change Plot Style
Browse files Browse the repository at this point in the history
  • Loading branch information
andthum committed Apr 16, 2024
1 parent 27e2317 commit 914f648
Showing 1 changed file with 101 additions and 88 deletions.
189 changes: 101 additions & 88 deletions misc/dtrj_lifetimes/plot_lifetimes.py
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@
color_km_wbl = "gold"
color_km_brr = "yellow"

marker_true = "*"
marker_true = "x"
# marker_true_cen = "P"
# marker_true_unc = "X"
marker_cnt_cen = "H"
Expand Down Expand Up @@ -372,18 +372,6 @@
else:
offset_i_cnt = 1
fig, ax = plt.subplots(clear=True)
# True lifetime distribution.
valid = np.isfinite(data[col_dst + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_dst + i][valid],
yerr=None,
label=label_true,
color=color_true,
marker=marker_true,
alpha=alpha,
)
# Method 1: Censored counting.
valid = np.isfinite(data[col_cnt_cen + i + offset_i_cnt])
if np.any(valid):
Expand Down Expand Up @@ -421,6 +409,42 @@
marker=marker_k,
alpha=alpha,
)
# Method 7: Numerical integration of the KM estimator.
valid = np.isfinite(data[col_km_int + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_km_int + i][valid],
yerr=None,
label=label_km_int,
color=color_km_int,
marker=marker_km_int,
alpha=alpha,
)
# Method 8: Weibull fit of the Kaplan-Meier estimator.
valid = np.isfinite(data[col_km_wbl + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_km_wbl + i][valid],
yerr=None,
label=label_km_wbl,
color=color_km_wbl,
marker=marker_km_wbl,
alpha=alpha,
)
# Method 9: Burr Type XII fit of the Kaplan-Meier estimator.
valid = np.isfinite(data[col_km_brr + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_km_brr + i][valid],
yerr=None,
label=label_km_brr,
color=color_km_brr,
marker=marker_km_brr,
alpha=alpha,
)
# Method 4: Numerical integration of the remain probability.
valid = np.isfinite(data[col_rp_int + i])
if np.any(valid):
Expand Down Expand Up @@ -457,42 +481,36 @@
marker=marker_rp_brr,
alpha=alpha,
)
# Method 7: Numerical integration of the KM estimator.
valid = np.isfinite(data[col_km_int + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_km_int + i][valid],
yerr=None,
label=label_km_int,
color=color_km_int,
marker=marker_km_int,
alpha=alpha,
)
# Method 8: Weibull fit of the Kaplan-Meier estimator.
valid = np.isfinite(data[col_km_wbl + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_km_wbl + i][valid],
yerr=None,
label=label_km_wbl,
color=color_km_wbl,
marker=marker_km_wbl,
alpha=alpha,
)
# Method 9: Burr Type XII fit of the Kaplan-Meier estimator.
valid = np.isfinite(data[col_km_brr + i])
# True lifetime distribution.
valid = np.isfinite(data[col_dst + i])
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_km_brr + i][valid],
data[col_dst + i][valid],
yerr=None,
label=label_km_brr,
color=color_km_brr,
marker=marker_km_brr,
label=(
label_true + r" $\mathrm{E}[T]$"
if i == 0
else label_true
),
color=color_true,
marker=marker_true,
alpha=alpha,
)
# True average residual/remaining lifetime.
if i == 0:
ydata = data[col_dst + 7] / (2 * data[col_dst])
valid = np.isfinite(ydata)
if np.any(valid):
ax.errorbar(
xdata[valid],
ydata[valid],
yerr=None,
label=label_true + r" $\mathrm{E}[R]$",
color="darkolivegreen",
marker="+",
alpha=alpha,
)
ax.set_xscale("log", base=10, subs=np.arange(2, 10))
ax.set(xlabel=xlabel, ylabel=ylabel, xlim=xlim)
ylim = ax.get_ylim()
Expand All @@ -517,44 +535,16 @@
################################################################

################################################################
# Plot average residual lifetime.
ylabel = "Avg. Res. Lifetime / Frames"
# Plot average residual/remaining lifetime.
ylabel = "Avg. Rem. Lifetime / Frames"
fig, ax = plt.subplots(clear=True)
ydata = data[col_dst + 7] / (2 * data[col_dst])
valid = np.isfinite(ydata)
if np.any(valid):
ax.plot(
xdata[valid],
ydata[valid],
label=(
r"$\langle t_{true}^2 \rangle /"
+ r" 2 \langle t_{true} \rangle$"
),
color=color_true, # color_true_cen,
marker=marker_true, # marker_true_cen,
alpha=alpha,
)
# ydata = data[col_dst + 8] / (2 * data[col_dst + 7])
# valid = np.isfinite(ydata)
# if np.any(valid):
# ax.plot(
# xdata[valid],
# ydata[valid],
# label=(
# r"$\langle t_{true}^3 \rangle /"
# + r" 2 \langle t_{true}^2 \rangle$"
# ),
# color=color_true_unc,
# marker=marker_true_unc,
# alpha=alpha,
# )
# Method 4: Numerical integration of the remain probability.
valid = np.isfinite(data[col_rp_int])
if np.any(valid):
ax.plot(
xdata[valid],
data[col_rp_int][valid],
label=label_rp_int + r" $\langle t \rangle$",
label=label_rp_int,
color=color_rp_int,
marker=marker_rp_int,
alpha=alpha,
Expand All @@ -565,7 +555,7 @@
ax.plot(
xdata[valid],
data[col_rp_wbl][valid],
label=label_rp_wbl + r" $\langle t \rangle$",
label=label_rp_wbl,
color=color_rp_wbl,
marker=marker_rp_wbl,
alpha=alpha,
Expand All @@ -576,11 +566,34 @@
ax.plot(
xdata[valid],
data[col_rp_brr][valid],
label=label_rp_brr + r" $\langle t \rangle$",
label=label_rp_brr,
color=color_rp_brr,
marker=marker_rp_brr,
alpha=alpha,
)
# True average residual/remaining lifetime.
ydata = data[col_dst + 7] / (2 * data[col_dst])
valid = np.isfinite(ydata)
if np.any(valid):
ax.plot(
xdata[valid],
ydata[valid],
label=r"True $\mathrm{E}[T^2] / 2 \mathrm{E}[T]$",
color=color_true,
marker=marker_true,
alpha=alpha,
)
# ydata = data[col_dst + 8] / (2 * data[col_dst + 7])
# valid = np.isfinite(ydata)
# if np.any(valid):
# ax.plot(
# xdata[valid],
# ydata[valid],
# label=r"$\mathrm{E}[T^3] / 2 \mathrm{E}[T^2]$",
# color=color_true_unc,
# marker=marker_true_unc,
# alpha=alpha,
# )
ax.set_xscale("log", base=10, subs=np.arange(2, 10))
ax.set(xlabel=xlabel, ylabel=ylabel, xlim=xlim)
ylim = ax.get_ylim()
Expand Down Expand Up @@ -661,18 +674,6 @@
)
for i, ylabel in enumerate(ylabels):
fig, ax = plt.subplots(clear=True)
# True distribution.
valid = data[col_dist_params + i] > 0
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_dist_params + i][valid],
yerr=None,
label=label_true,
color=color_true,
marker=marker_true,
alpha=alpha,
)
if i < 2:
# Method 5: Weibull fit of the remain probability.
col_rp_wbl_i = len(ylims_characs)
Expand Down Expand Up @@ -735,6 +736,18 @@
marker=marker_km_brr,
alpha=alpha,
)
# True distribution.
valid = data[col_dist_params + i] > 0
if np.any(valid):
ax.errorbar(
xdata[valid],
data[col_dist_params + i][valid],
yerr=None,
label=label_true,
color=color_true,
marker=marker_true,
alpha=alpha,
)
ax.set_xscale("log", base=10, subs=np.arange(2, 10))
ax.set(xlabel=xlabel, ylabel=ylabel, xlim=xlim)
ylim = ax.get_ylim()
Expand Down

0 comments on commit 914f648

Please sign in to comment.