add recommender to repository

This commit is contained in:
hannes.kuchelmeister
2020-05-04 10:49:59 +02:00
parent 67ae83e0bd
commit 719f3d5ea7
51 changed files with 5792 additions and 0 deletions

115
data_gen/gen_diagram.py Normal file
View File

@@ -0,0 +1,115 @@
import matplotlib.pyplot as plt
import pandas as pd
import os
def setAxLinesBW(ax):
"""
Take each Line2D in the axes, ax, and convert the line style to be
suitable for black and white viewing.
"""
MARKERSIZE = 3
COLORMAP = {
'#ff7f0e': {'marker': None, 'dash': [3,4]},
'#1f77b4': {'marker': None, 'dash': [1,1]},
'#2ca02c': {'marker': None, 'dash': (None,None)}
}
lines_to_adjust = ax.get_lines()
try:
lines_to_adjust += ax.get_legend().get_lines()
except AttributeError:
pass
for line in lines_to_adjust:
origColor = line.get_color()
line.set_color('black')
line.set_dashes(COLORMAP[origColor]['dash'])
line.set_marker(COLORMAP[origColor]['marker'])
line.set_markersize(MARKERSIZE)
def setFigLinesBW(fig):
"""
Take each axes in the figure, and for each line in the axes, make the
line viewable in black and white.
"""
for ax in fig.get_axes():
setAxLinesBW(ax)
def load_data_frame(path):
frame = pd.read_csv(path, index_col=0).T
frame.index = frame.index.astype(int)
return frame
def new_fig(subplot_row=1, subplot_column=2, dpi=300, title="Untitled"):
figure, axes = plt.subplots(subplot_row, subplot_column, sharey=True)
#figure.tight_layout(pad=1.5)
for axis in axes:
axis.tick_params(
axis="y", # both major and minor ticks are affected
left=True,
labelleft=True,
labelright=True)
figure.canvas.set_window_title(title)
figure.dpi = dpi
figure.set_figwidth(4 * subplot_column)
figure.set_figheight(4 * subplot_row)
return axes
happy_dictator = load_data_frame("./{}".format("happy_dictator.csv"))
unhappy_dictator = load_data_frame("./{}".format("unhappy_dictator.csv"))
axes = new_fig()
axes[0].set_title("satisfaction")
#axes[0].set_xlim(x_lim)
axes[0].set_xlabel("tc")
axes[0].set_ylabel("number of people")
happy_dictator.plot(ax=axes[0])
setAxLinesBW(axes[0])
axes[1].set_title("dissatisfaction")
axes[1].set_xlabel("tc")
axes[1].set_ylabel("number of people")
#axes[1].set_xlim(x_lim)
unhappy_dictator.plot(ax=axes[1])
setAxLinesBW(axes[1])
plt.savefig("./dictator.pdf",format="pdf")
happy_change = load_data_frame("./{}".format("happy_change.csv"))
unhappy_change = load_data_frame("./{}".format("unhappy_change.csv"))
axes = new_fig()
axes[0].set_title("satisfaction change")
#axes[0].set_xlim(x_lim)
axes[0].set_xlabel("tc")
axes[0].set_ylabel("number of people")
happy_change.plot(ax=axes[0])
setAxLinesBW(axes[0])
axes[1].set_title("dissatisfaction change")
axes[1].set_xlabel("tc")
axes[1].set_ylabel("number of people")
#axes[1].set_xlim(x_lim)
unhappy_change.plot(ax=axes[1])
setAxLinesBW(axes[1])
plt.savefig("./change.pdf",format="pdf")
plt.show()
plt.close()