Crie um gráfico a partir de um arquivo CSV e renderize no navegador com o Django e a biblioteca Pandas Python

Estou aprendendo a usar a estrutura do Django para um projeto de trabalho que permitirá aos usuários carregar arquivos em vários formatos (no momento estou lidando apenas com arquivos CSV), representar graficamente esses dados usandoPandase exiba esses dados de volta para o usuário por meio de um modelo do Django. Não tive problemas para criar o gráfico no iPython, mas tenho tido dificuldade em obtê-lo em um modelo Django HTML.

Eu segui o exemplo a seguir dematplotlib:

# graph input file

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.dates import DateFormatter

def graph(request):
    fig = Figure()
    ax = fig.add_subplot(111)
    x = []
    y = []
    now = datetime.datetime.now()
    delta = datetime.timedelta(days=1)
    for i in range(10):
        x.append(now)
        now += delta
        y.append(random.randint(0, 1000))
    ax.plot_date(x, y, '-')
    ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))
    fig.autofmt_xdate()
    canvas = FigureCanvas(fig)
    response = HttpResponse( content_type = 'image/png')
    canvas.print_png(response)
    return response

O exemplo acima funciona muito bem e posso vê-lo em um modelo, mas isso é apenas um gráfico com valores codificados.

Eu tentei usarPandas por causa de sua sintaxe aparentemente simplista e minhas tentativas no Django são as seguintes:

# graph input file

import pandas as pd
from pandas import DataFrame

def graph(request):
    data_df = pd.read_csv("C:/Users/vut46744/Desktop/graphite_project/sampleCSV.csv")
    data_df = pd.DataFrame(dataArray)
    data_df.plot()
    response = HttpResponse( content_type = 'image/png')

    return response

No Django chamando o.plot() exibe o gráfico com precisão, mas exibe uma página em branco no modelo HTML. Eu também tentei usar o Numpygenfromtxt() eloadtxt(), mas sem sucesso. Além disso, minhas pesquisas no Google também não foram proveitosas.

Qualquer ajuda ou sugestão seria ótima. Se você conhece uma alternativa melhor ao Pandas, estou disposto a tentar outras opções.

questionAnswers(2)

yourAnswerToTheQuestion