aaa / LLMatic-main /plot /plot_density.py
Ahmed-Salah's picture
Upload 57 files
d625688 verified
import glob
from pylab import *
import brewer2mpl
import numpy as np
import sys
import math
import gzip
import matplotlib.gridspec as gridspec
from scipy import stats
from collections import defaultdict
from matplotlib import pyplot as plt
from matplotlib.ticker import AutoMinorLocator
def customize_axis(ax):
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
ax.minorticks_on()
ax.grid(which='minor', linestyle='-', linewidth='0.5', alpha=0.5)
ax.xaxis.set_minor_locator(AutoMinorLocator(2))
# offset the spines
for spine in ax.spines.values():
spine.set_position(('outward', 5))
# put the grid behind
ax.set_axisbelow(True)
ax.grid(axis='y', color="0.9", linestyle='-', linewidth=1)
fig = figure(frameon=False,figsize=(6, 4))
ax1 = fig.add_subplot(111)
ax1.set_title('Cumulative density (unnormalized)')
my_cmap = cm.viridis
norm = matplotlib.colors.Normalize(vmin=0, vmax=len(sys.argv))
def cdf(x, data):
res = []
med = None
for v in x:
s = sum(v < data)
res += [s]
if med == None and s < (len(data) / 2):
print(len(data), s)
med = (v, s)
return res, med
for i in range(1, len(sys.argv)):
data = np.loadtxt(sys.argv[i])[:,0]
# unbinned CDF
# https://stackoverflow.com/questions/10640759/how-to-get-the-cumulative-distribution-function-with-numpy#comment52345953_32230314
x = np.sort(data)[::-1]
y = np.array(range(len(data)))
median = (np.median(data), np.median(y))
ax1.semilogy(x, y, lw=2, label=sys.argv[i], color=cm.viridis(norm(i)))
ax1.semilogy([median[0], median[0]], [median[1],0], '--', color=cm.viridis(norm(i)), lw=0.75)
ax1.semilogy([median[0], median[0]], [median[1],0], 'o', color=cm.viridis(norm(i)), markersize=8, mfc='white',markeredgewidth=1)
customize_axis(ax1)
legend = ax1.legend()#bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=(3))
frame = legend.get_frame()
frame.set_facecolor('0.9')
frame.set_edgecolor('1.0')
fig.tight_layout()
fig.savefig('density.pdf')
fig.savefig('density.svg')