Cree un gráfico a partir de un archivo CSV y renderícelo en el navegador con Django y la biblioteca Pandas Python

Estoy aprendiendo cómo usar el marco Django para un proyecto de trabajo que permitirá a los usuarios cargar archivos en varios formatos (en este momento solo estoy tratando con archivos CSV), graficar esos datos usandoPandasy mostrar esos datos al usuario a través de una plantilla de Django. No he tenido ningún problema al crear el gráfico en iPython, pero he tenido problemas para llevarlo a una plantilla HTML Django.

He seguido el siguiente ejemplo 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

El ejemplo anterior funciona muy bien y puedo verlo en una plantilla, pero eso es solo un gráfico con valores codificados.

He intentado usarPandas debido a su sintaxis aparentemente simplista y mis intentos en Django son los siguientes:

# 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

En Django llamando al.plot() muestra bien el gráfico, pero muestra una página en blanco con la plantilla HTML. También he intentado usar Numpy'sgenfromtxt() yloadtxt(), pero fue en vano. Además, mis búsquedas en Google tampoco han sido fructíferas.

Cualquier ayuda o sugerencia sería genial. Si conoce una mejor alternativa a Pandas, entonces estoy dispuesto a probar otras opciones.

Respuestas a la pregunta(2)

Su respuesta a la pregunta