0

辞書から棒グラフを作成するシステムを探していると、グラフに入れる線が約 150 行あります。

{'test.com': 10 進数 ('40')、'cmi.com': 10 進数 ('70')、'dublin.ie': 10 進数 ('5')、'sfss.edu': 10 進数 ('35') '), 'computer.ie': Decimal('10')}

やっていることは、 for ループを配置して画像の幅にすることですが、必要なほど動的に機能していません。

print "<img src='line.png' width='%d'>" % email[1]

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

0

の組み合わせで

Python で棒グラフを作成し、DISPLAY が未定義の場合に matplotlib で PNG を生成 する

助けてくれてありがとう、これを解決することができました。

#!/usr/bin/env python
print 'Content-type: text/html'
print.
import numpy as np
import matplotlib as mpl
mpl.use('Agg')

import matplotlib.pyplot as plt

ありがとうございました

于 2013-01-20T21:52:06.053 に答える
0

私が使用しているソリューション

import matplotlib

matplotlib.use('Agg')
from pylab import *
from decimal import *

def main(my_dict):..
    bar_graph(my_dict, graph_title='Custoers')
    show_html()

def bar_graph(name_value_dict, graph_title='', output_name='bargraph.png'):
    figure(figsize=(15, 10)) # image dimensions..
    title(graph_title, size='x-small')

    # add bars
    for i, key in zip(range(len(name_value_dict)), name_value_dict.keys()):
        barh(i, name_value_dict[key], color='red')

    # axis setup
    yticks(arange(0, len(name_value_dict)),
        [('%s: %d \n' % (name)) for name in
        zip(name_value_dict.keys(), name_value_dict.values())],
        size='small')

# max_value = max(name_value_dict.values())
#tick_range = arange(0, max_value, (max_value / len(ame_val_dict)))
#formatter = FixedFormatter([str(x) for x in tick_range])
# gca().yaxis.set_major_formatter(formatter)

    # gca().yaxis.grid(which='major')
    grid(True).
    savefig(output_name)

def show_html():
    #print "<html><body>"
    print "<img src='bargraph.png'>"
    #print "</body></html>"

if __name__ == "__main__":
    my_dict = {'la' : Decimal('20'), 'cmi' : Decimal(100)}
    main(my_dict)
于 2013-01-21T00:43:13.643 に答える