From 3716b099fe18ff458012084d344fce5f439d3532 Mon Sep 17 00:00:00 2001 From: tlatorre Date: Mon, 30 Nov 2020 17:15:26 -0500 Subject: update code to work with python3 This commit updates the python code to work with python 3 and with a newer version of matplotlib. - zip_longest -> izip_longest - fix tick marks for log plots - scipy.misc -> scipy.special --- utils/chi2 | 7 ++++++- utils/dm-search | 7 ++++++- utils/plot-dc | 7 ++++++- utils/plot-energy | 7 ++++++- utils/plot-fit-results | 2 +- utils/sddm/__init__.py | 5 ++++- utils/sddm/plot.py | 2 +- utils/sddm/plot_energy.py | 2 +- utils/sddm/stats.py | 6 ++++++ 9 files changed, 37 insertions(+), 8 deletions(-) (limited to 'utils') diff --git a/utils/chi2 b/utils/chi2 index 5d56f17..acb59de 100755 --- a/utils/chi2 +++ b/utils/chi2 @@ -29,13 +29,13 @@ from scipy.stats import iqr, poisson from matplotlib.lines import Line2D from scipy.stats import iqr, norm, beta, percentileofscore from scipy.special import spence -from itertools import izip_longest from sddm.stats import * from sddm.dc import estimate_errors, EPSILON, truncnorm_scaled import emcee from sddm import printoptions from sddm.utils import fast_cdf, correct_energy_bias import nlopt +from itertools import chain # Likelihood Fit Parameters # 0 - Atmospheric Neutrino Flux Scale @@ -125,6 +125,11 @@ def plot_hist2(hists, bins, color=None): bincenters = (bins[1:] + bins[:-1])/2 plt.hist(bincenters, bins=bins, histtype='step', weights=hists[id],color=color) plt.gca().set_xscale("log") + major = np.array([10,100,1000,10000]) + minor = np.unique(list(chain(*list(range(i,i*10,i) for i in major[:-1])))) + minor = np.setdiff1d(minor,major) + plt.gca().set_xticks(major) + plt.gca().set_xticks(minor,minor=True) plt.xlabel("Energy (MeV)") plt.title('$' + ''.join([particle_id[int(''.join(x))] for x in grouper(str(id),2)]) + '$') diff --git a/utils/dm-search b/utils/dm-search index 872004b..1e9c987 100755 --- a/utils/dm-search +++ b/utils/dm-search @@ -27,7 +27,6 @@ from scipy.stats import iqr, poisson from matplotlib.lines import Line2D from scipy.stats import iqr, norm, beta, percentileofscore from scipy.special import spence -from itertools import izip_longest from sddm.stats import * from sddm.dc import estimate_errors, EPSILON, truncnorm_scaled import emcee @@ -37,6 +36,7 @@ from scipy.integrate import quad from sddm.dm import * from sddm import SNOMAN_MASS, AV_RADIUS import nlopt +from itertools import chain # Likelihood Fit Parameters # 0 - Atmospheric Neutrino Flux Scale @@ -145,6 +145,11 @@ def plot_hist2(hists, bins, color=None): bincenters = (bins[1:] + bins[:-1])/2 plt.hist(bincenters, bins=bins, histtype='step', weights=hists[id],color=color) plt.gca().set_xscale("log") + major = np.array([10,100,1000,10000]) + minor = np.unique(list(chain(*list(range(i,i*10,i) for i in major[:-1])))) + minor = np.setdiff1d(minor,major) + plt.gca().set_xticks(major) + plt.gca().set_xticks(minor,minor=True) plt.xlabel("Energy (MeV)") plt.title('$' + ''.join([particle_id[int(''.join(x))] for x in grouper(str(id),2)]) + '$') diff --git a/utils/plot-dc b/utils/plot-dc index d2e461d..e20d5cc 100755 --- a/utils/plot-dc +++ b/utils/plot-dc @@ -28,7 +28,7 @@ from scipy.stats import iqr, poisson from matplotlib.lines import Line2D from scipy.stats import iqr, norm, beta from scipy.special import spence -from itertools import izip_longest +from itertools import chain particle_id = {20: 'e', 22: r'\mu'} @@ -52,6 +52,11 @@ def plot_hist2(df, muons=False): bins = np.logspace(np.log10(20),np.log10(10e3),21) plt.hist(df_id.ke.values, bins=bins, histtype='step') plt.gca().set_xscale("log") + major = np.array([10,100,1000,10000]) + minor = np.unique(list(chain(*list(range(i,i*10,i) for i in major[:-1])))) + minor = np.setdiff1d(minor,major) + plt.gca().set_xticks(major) + plt.gca().set_xticks(minor,minor=True) plt.xlabel("Energy (MeV)") plt.title('$' + ''.join([particle_id[int(''.join(x))] for x in grouper(str(id),2)]) + '$') diff --git a/utils/plot-energy b/utils/plot-energy index 4568bcc..2fb2aa1 100755 --- a/utils/plot-energy +++ b/utils/plot-energy @@ -31,7 +31,7 @@ from scipy.stats import iqr, poisson from matplotlib.lines import Line2D from scipy.stats import iqr, norm, beta from scipy.special import spence -from itertools import izip_longest +from itertools import chain particle_id = {20: 'e', 22: r'\mu'} @@ -56,6 +56,11 @@ def plot_hist2(df, muons=False): plt.hist(df_id.ke.values, bins=bins, histtype='step') plt.gca().set_xscale("log") plt.xlabel("Energy (MeV)") + major = np.array([10,100,1000,10000]) + minor = np.unique(list(chain(*list(range(i,i*10,i) for i in major[:-1])))) + minor = np.setdiff1d(minor,major) + plt.gca().set_xticks(major) + plt.gca().set_xticks(minor,minor=True) plt.title('$' + ''.join([particle_id[int(''.join(x))] for x in grouper(str(id),2)]) + '$') if len(df): diff --git a/utils/plot-fit-results b/utils/plot-fit-results index 20c3c68..cc85213 100755 --- a/utils/plot-fit-results +++ b/utils/plot-fit-results @@ -133,7 +133,7 @@ if __name__ == '__main__': label = 'Muon' if id == IDP_MU_MINUS else 'Electron' - marker = markers.next() + marker = next(markers) plt.figure(1) plt.errorbar(T,dT['median']*100/T,yerr=dT['median_err']*100/T,fmt=marker,label=label) diff --git a/utils/sddm/__init__.py b/utils/sddm/__init__.py index 8bed558..3b3ace7 100644 --- a/utils/sddm/__init__.py +++ b/utils/sddm/__init__.py @@ -1,6 +1,9 @@ from __future__ import print_function, division import sys -from itertools import izip_longest +if sys.version_info[0] == 3: + from itertools import zip_longest as izip_longest +else: + from itertools import izip_longest import os import h5py import pandas as pd diff --git a/utils/sddm/plot.py b/utils/sddm/plot.py index 935b26a..93a58db 100644 --- a/utils/sddm/plot.py +++ b/utils/sddm/plot.py @@ -95,7 +95,7 @@ def despine(fig=None, ax=None, top=True, right=True, left=False, val = offset.get(side, 0) except AttributeError: val = offset - _set_spine_position(ax_i.spines[side], ('outward', val)) + ax_i.spines[side].set_position(('outward', val)) # Potentially move the ticks if left and not right: diff --git a/utils/sddm/plot_energy.py b/utils/sddm/plot_energy.py index 67849b5..50ecd89 100644 --- a/utils/sddm/plot_energy.py +++ b/utils/sddm/plot_energy.py @@ -21,7 +21,7 @@ from scipy.special import spence, gammaln from .dc import DC_MUON, DC_JUNK, DC_CRATE_ISOTROPY, DC_QVNHIT, DC_NECK, DC_FLASHER, DC_ESUM, DC_OWL, DC_OWL_TRIGGER, DC_FTS, DC_ITC, DC_BREAKDOWN from . import grouper, print_warning, AV_RADIUS, PSUP_RADIUS, read_hdf import pandas as pd -from scipy.misc import logsumexp +from scipy.special import logsumexp from os.path import exists, join from os import environ diff --git a/utils/sddm/stats.py b/utils/sddm/stats.py index ff2a6ad..9269be3 100644 --- a/utils/sddm/stats.py +++ b/utils/sddm/stats.py @@ -2,6 +2,7 @@ from __future__ import print_function, division import numpy as np from scipy.stats import gamma, dirichlet, multinomial, poisson from . import grouper +from itertools import chain particle_id = {20: 'e', 22: r'\mu'} @@ -125,6 +126,11 @@ def plot_hist2_data_mc(data, mc, bins=None, norm=None): plt.hist(data[data.id == id].ke.values, bins=bins, histtype='step', label="Data", color="C0") plt.hist(mc[mc.id == id].ke.values, bins=bins, histtype='step', weights=np.tile(norm,len(mc[mc.id == id].ke.values)), label="Monte Carlo", color="C1") plt.gca().set_xscale("log") + major = np.array([10,100,1000,10000]) + minor = np.unique(list(chain(*list(range(i,i*10,i) for i in major[:-1])))) + minor = np.setdiff1d(minor,major) + plt.gca().set_xticks(major) + plt.gca().set_xticks(minor,minor=True) plt.xlabel("Energy (MeV)") p = get_multinomial_prob(hist,hist_mc,norm) plt.text(0.95,0.95,"p = %.2f" % p,horizontalalignment='right',verticalalignment='top',transform=plt.gca().transAxes) -- cgit