Source code for emodpy.analyzers.adult_vectors_analyzer
import json
import os
from typing import Any
from idmtools.core.interfaces.iitem import IItem
from idmtools.entities.ianalyzer import IAnalyzer as BaseAnalyzer
import matplotlib as mpl
mpl.use('Agg')
[docs]class AdultVectorsAnalyzer(BaseAnalyzer):
def __init__(self, name='hi'):
super().__init__(filenames=["output\\InsetChart.json"])
print(name)
[docs] def initialize(self):
if not os.path.exists(os.path.join(self.working_dir, "output")):
os.mkdir(os.path.join(self.working_dir, "output"))
[docs] def map(self, data: Any, item: IItem) -> Any:
return data[self.filenames[0]]["Channels"]["Adult Vectors"]["Data"]
[docs] def reduce(self, all_data: dict) -> Any:
output_dir = os.path.join(self.working_dir, "output")
with open(os.path.join(output_dir, "adult_vectors.json"), "w") as fp:
json.dump({str(s.uid): v for s, v in all_data.items()}, fp)
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
for pop in list(all_data.values()):
ax.plot(pop)
ax.legend([str(s.uid) for s in all_data.keys()])
fig.savefig(os.path.join(output_dir, "adult_vectors.png"))