def run_plot(args):
import_plotting()
lflist = args.lineformats.strip().split(",")
lfcycle = cycle(lflist)
plot_info = {}
for (path, label) in args.experiments:
dataset_color = lfcycle.next()
dataset_label = label
fin = open(path, 'r')
histograms = json.load(fin)
fin.close()
for name in histograms.keys():
plot_info.setdefault(name, {'datasets':[], 'error':0, 'dataset_colors':[], 'dataset_labels':[], 'bin_labels':[]})
plot_info[name]['dataset_colors'].append(dataset_color)
plot_info[name]['dataset_labels'].append(dataset_label)
dataset = []
bin_labels = []
for (left, right, val) in histograms[name]['bins']:
if right == float('inf'):
right = '{}'.format(r'$\infty$')
elif 'Ratio' not in name:
right = int(right)
if left == float('-inf'):
left = '{}'.format(r'$-\infty$')
elif 'Ratio' not in name:
left = int(left)
bin_labels.append("[{},{})".format(left, right))
dataset.append(val)
plot_info[name]['datasets'].append(dataset)
if 'sigma' in histograms[name]:
sigma = float(histograms[name]['sigma'])
plot_info[name]['error'] = int(round(2 * sqrt(3) * sigma)) % 1000000000000000
if len(plot_info[name]['bin_labels']) == 0:
plot_info[name]['bin_labels'] = bin_labels
page = PdfPages("{0}privcount.results.pdf".format(args.prefix+'.' if args.prefix is not None else ''))
# test data
'''
datasets = [[5, 10, 12, 7, 4], [3, 4, 5, 6, 7]]
dataset_labels = ["tor", "shadow"]
dataset_colors = ["red", "green"]
bar_xlabels = ['[0,128)', '[128,256)', '[256,512)', '[512,1024)', '[1024,\n2048)']
plot_bar_chart(page, datasets, dataset_labels, dataset_colors, bar_xlabels, title="test", xlabel="test_x", ylabel="test_y")
'''
for name in sorted(plot_info.keys()):
dat = plot_info[name]
plot_bar_chart(page, dat['datasets'], dat['dataset_labels'], dat['dataset_colors'], dat['bin_labels'], err=dat['error'], title=name)
page.close()
评论列表
文章目录