You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1000 B
Python
29 lines
1000 B
Python
import os
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
import pandas as pd
|
|
|
|
dfs = {
|
|
i: pd.read_csv(f"top_actors_{i:02d}_c.txt", sep='\t', usecols=[1], names=["actor"])
|
|
for i in [5] + list(range(10, 71, 10))}
|
|
sets = {i: set(df["actor"]) for i, df in dfs.items()}
|
|
|
|
diff = []
|
|
for i in sets.keys():
|
|
diff.append([len(sets[i]) - len(sets[i] & sets[j]) for j in sets.keys()])
|
|
diff = np.array(diff, dtype=float)
|
|
diff /= len(next(iter(sets.values())))
|
|
|
|
plt.matshow(diff)
|
|
for (i, j), z in np.ndenumerate(diff):
|
|
plt.gca().text(j, i, f'{z:0.2f}', ha='center', va='center')
|
|
plt.gca().set_xticks(np.linspace(0.0, len(sets) - 1, len(sets)))
|
|
plt.gca().set_yticks(np.linspace(0.0, len(sets) - 1, len(sets)))
|
|
plt.gca().set_xticklabels([f"{i:d}" for i in sets.keys()])
|
|
plt.gca().set_yticklabels([f"{i:d}" for i in sets.keys()])
|
|
plt.ylabel("\nMIN_ACTORS value")
|
|
plt.xlabel("\nMIN_ACTORS value")
|
|
cb = plt.colorbar()
|
|
cb.set_label("\npercentace of difference in results varing MIN_MOVIES")
|
|
plt.show()
|