plot.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:privcount 作者: privcount 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号