#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 7 20:45:11 2018.
@author: spiros
"""
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats
import matplotlib
from scipy.stats import sem
def bar_plots(mydict, metric, path_figs, learning):
my_list = ['Control', 'No_VIPcells', 'No_VIPCR', 'No_VIPCCK', 'No_VIPPVM',
'No_VIPNVM', 'No_VIPCRtoOLM', 'No_VIPCRtoBC']
A = mydict
A_means = []
A_sems = []
for case in my_list:
A_means.append(np.mean(A[case]))
A_sems.append(scipy.stats.sem(A[case]))
plt.figure(1, dpi=300)
y = A_means
labels = my_list
N = len(y)
x = range(N)
p1, p2, p3, p4, p5, p6, p7, p8 = plt.bar(x, y, yerr=A_sems)
p1.set_facecolor('blue')
p2.set_facecolor('red')
p3.set_facecolor('green')
p4.set_facecolor('yellow')
p5.set_facecolor('lightblue')
p6.set_facecolor('olive')
p7.set_facecolor('darkmagenta')
p8.set_facecolor('darkorange')
plt.xticks(x, labels, rotation='45')
plt.ylabel(metric, fontsize=16)
plt.title(metric)
plt.savefig(path_figs+'/'+learning+'_'+metric +
'_barplot.pdf', format='pdf', dpi=300)
plt.cla()
plt.clf()
plt.close()
# Make Boxplots
A_list = []
for case in my_list:
A_list.append(list(mydict[case]))
plt.figure(1, dpi=300)
y = A_list
labels = my_list
N = len(y)
x = range(1, N+1)
# notch shape box plot
bplot = plt.boxplot(y, notch=True, vert=True, patch_artist=True,
labels=labels) # will be used to label x-ticks
# fill with colors
colors = ['blue', 'red', 'green', 'yellow', 'lightblue',
'olive', 'darkmagenta', 'darkorange']
for patch, color in zip(bplot['boxes'], colors):
patch.set_facecolor(color)
for element in ['fliers', 'means', 'medians', 'caps']:
plt.setp(bplot[element], color='black')
plt.xticks(x, labels, rotation='45')
plt.ylabel(metric, fontsize=16)
plt.savefig(path_figs+'/'+learning+'_'+metric +
'_boxplot.pdf', format='pdf', dpi=300)
plt.cla()
plt.clf()
plt.close()
def bar_plots2(mydict, metric, learning, path_figs, baseline):
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['ps.fonttype'] = 42
my_list = ['Control', 'No_VIPcells', 'No_VIPCR', 'No_VIPCCK',
'No_VIPPVM', 'No_VIPNVM', 'No_VIPCRtoBC', 'No_VIPCRtoOLM']
A = mydict
A_means = [np.mean(A['Control']), np.mean(A['No_VIPcells']),
np.mean(A['No_VIPCR']), np.mean(A['No_VIPCCK']),
np.mean(A['No_VIPPVM']), np.mean(A['No_VIPNVM']),
np.mean(A['No_VIPCRtoBC']), np.mean(A['No_VIPCRtoOLM'])]
A_sems = [sem(A['Control']), sem(A['No_VIPcells']), sem(A['No_VIPCR']),
sem(A['No_VIPCCK']), sem(A['No_VIPPVM']), sem(A['No_VIPNVM']),
sem(A['No_VIPCRtoBC']), sem(A['No_VIPCRtoOLM'])]
plt.figure(1, dpi=300)
y = A_means
labels = my_list
N = len(y)
x = range(N)
pControl, pVIPcells, pVIPCR, pVIPCCK, pVIPPVM, pVIPNVM, pVIPtoBC, pVIPtoOLM = plt.bar(
x, y, yerr=A_sems)
pControl.set_facecolor('blue')
pVIPcells.set_facecolor('green')
pVIPCR.set_facecolor('yellow')
pVIPCCK.set_facecolor('red')
pVIPPVM.set_facecolor('lightblue')
pVIPNVM.set_facecolor('lightgreen')
pVIPtoBC.set_facecolor('yellowgreen')
pVIPtoOLM.set_facecolor('darkred')
plt.axhline(y=baseline, linestyle='--', linewidth=2)
plt.plot()
plt.xticks(x, labels)
plt.ylabel(metric, fontsize=16)
plt.title(learning)
plt.ylim([0, 0.4])
plt.savefig(path_figs+learning+'/'+metric +
'_barplot.pdf', format='pdf', dpi=300)
plt.cla()
plt.clf()
plt.close()
# Make Boxplots
A_list = [list(A['Control']), list(A['No_VIPcells']), list(A['No_VIPCR']),
list(A['No_VIPCCK']), list(A['No_VIPPVM']), list(A['No_VIPNVM']),
list(A['No_VIPCRtoBC']), list(A['No_VIPCRtoOLM'])]
plt.figure(1, dpi=300)
y = A_list
labels = my_list
N = len(y)
x = range(1, N+1)
# notch shape box plot
# will be used to label x-ticks
bplot = plt.boxplot(y, notch=True, vert=True,
patch_artist=True, labels=labels)
# fill with colors
colors = ['blue', 'green', 'yellow', 'red',
'lightblue', 'lightgreen', 'yellowgreen', 'darkred']
for patch, color in zip(bplot['boxes'], colors):
patch.set_facecolor(color)
for element in ['fliers', 'means', 'medians', 'caps']:
plt.setp(bplot[element], color='black')
plt.xticks(x, labels)
plt.ylabel(metric, fontsize=16)
plt.title(learning)
plt.savefig(path_figs+learning+'/'+metric +
'_boxplot.pdf', format='pdf', dpi=300)
plt.cla()
plt.clf()
plt.close()