2022-05-09 15:20:10 +02:00
|
|
|
import matplotlib.pyplot as plt
|
2022-05-06 13:23:31 +02:00
|
|
|
import numpy as np
|
|
|
|
import pandas as pd
|
2022-05-09 15:20:10 +02:00
|
|
|
from matplotlib.axes import Axes
|
|
|
|
from matplotlib.figure import Figure
|
2022-05-06 13:23:31 +02:00
|
|
|
|
2022-05-09 15:20:10 +02:00
|
|
|
num_bins = 5
|
|
|
|
bins = np.geomspace(450, 80000, num_bins + 1)
|
|
|
|
method = "shannon"
|
2022-05-06 13:23:31 +02:00
|
|
|
|
|
|
|
|
2022-05-09 15:20:10 +02:00
|
|
|
def read(mode, ref_res, comp_res):
|
|
|
|
df = pd.read_csv(f"{mode}_{ref_res}_100_{mode}_{comp_res}_100.csv")
|
|
|
|
print(min(df.ref_masses), max(df.ref_masses))
|
2022-05-06 13:23:31 +02:00
|
|
|
|
2022-05-09 15:20:10 +02:00
|
|
|
digits = np.digitize(df.ref_masses, bins)
|
|
|
|
bin_means = []
|
|
|
|
for i in range(num_bins):
|
|
|
|
values = np.where(digits == i + 1)
|
|
|
|
in_bin = df.iloc[values]
|
|
|
|
matches = np.array(in_bin.matches)
|
|
|
|
bin_means.append(matches.mean())
|
|
|
|
return bin_means
|
|
|
|
|
|
|
|
|
|
|
|
rows = [[1] * num_bins]
|
|
|
|
resolutions = [128, 256, 512]
|
|
|
|
ref_res = 128
|
|
|
|
for res in resolutions:
|
|
|
|
if res == ref_res:
|
|
|
|
continue
|
|
|
|
means = read(method, 128, res)
|
|
|
|
rows.append(means)
|
|
|
|
|
|
|
|
data = np.array(rows).T
|
|
|
|
|
|
|
|
fig: Figure = plt.figure()
|
|
|
|
ax: Axes = fig.gca()
|
|
|
|
ax.set_xticks(range(len(resolutions)))
|
|
|
|
ax.set_xticklabels(resolutions)
|
|
|
|
ax.set_yticks(np.arange(len(bins)) - 0.5)
|
|
|
|
ax.set_yticklabels(["{:.2f}".format(a) for a in bins])
|
|
|
|
|
|
|
|
for x in range(data.shape[0]):
|
|
|
|
for y in range(data.shape[1]):
|
|
|
|
text = ax.text(y, x, "{:.2f}".format(data[x, y]), ha="center", va="center", color="w")
|
|
|
|
|
|
|
|
# print(data)
|
|
|
|
p = ax.imshow(data, origin="lower", vmin=0.5, vmax=1)
|
|
|
|
fig.colorbar(p)
|
|
|
|
|
|
|
|
ax.set_title(method)
|
|
|
|
fig.savefig(method + ".png")
|
|
|
|
plt.show()
|