Как добавить сюжет к рисунку в matplotlib? - PullRequest
2 голосов
/ 27 декабря 2010

Я использую Matplotlib с Django. Я пытаюсь создать гистограмму.

Я следовал кулинарной книге , но я только что получил серую прямоугольную коробку.

Теперь я использую следующий код, и у меня есть заголовок и оси.

Как мне добавить гистограмму к рисунку? В настоящее время внутри осей нет актуальных данных.

Вот мой код:

from matplotlib.backends.backend_agg import FigureCanvasAgg 
from matplotlib.figure import Figure
import matplotlib.pyplot as plt

class Chart(object):

    ## Creates a bar chart of the given data
    @staticmethod
    def bar(data):
        figure = Figure(figsize=(6,6))
        ax = figure.add_axes([0.1, 0.1, 0.8, 0.8])
        labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
        fracs = [15, 30, 45, 10]
        explode=(0, 0.05, 0, 0)
        plt.pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
        figure.suptitle('Raining Hogs and Dogs', fontsize=14)

        canvas = FigureCanvasAgg(figure)

        return canvas

На мой взгляд, у меня есть:

canvas = Chart.bar(results)

# turn the returned canvas into an HTTP response
response=HttpResponse(content_type='image/png')
canvas.print_png(response)
return response

1 Ответ

8 голосов
/ 27 декабря 2010
    fig = Figure()
    fig = Figure(facecolor='white', edgecolor='white')
    ax = fig.add_subplot(1,1,1)

    x = matplotlib.numpy.arange(0, len(dic.keys()))

    ind = matplotlib.numpy.arange(len(dic.values()))

    height = 0.8
    ax.bar(ind, dic.values(), width, color=colors)

    ax.set_xticks(ind + width / 2.0)
    ax.set_xticklabels(dic.keys())

    padding = 0.2
    ax.set_xlim([x.min() - padding, x.max() + width + padding])

    canvas =  FigureCanvas(fig)
    response = django.http.HttpResponse(content_type='image/png')
    canvas.print_png(response)
    fig.savefig(filename)

это создаст гистограмму и сохранит изображение.Просто нужно вызвать функцию в ваши взгляды.и откройте изображение в шаблоне.Я передал словарь этой функции (dic), но вы можете передать список, зависит от вас.

в этом случае ключи - это ось x, а значения - ось y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...