Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中使用Matplotlib生成动态图表_Django_Httpwebrequest_Matplotlib - Fatal编程技术网

在Django中使用Matplotlib生成动态图表

在Django中使用Matplotlib生成动态图表,django,httpwebrequest,matplotlib,Django,Httpwebrequest,Matplotlib,所以我有两个视图:第一个视图根据请求生成html,第二个视图生成第一个视图要显示的图表 HTML视图 def activation_signupcount(request): if 'datestart' not in request.GET: return render_to_response('activation/activation_signupcount.html', {'datestart':''}) else: datesta

所以我有两个视图:第一个视图根据请求生成html,第二个视图生成第一个视图要显示的图表

HTML视图

def activation_signupcount(request):

    if 'datestart' not in request.GET:

        return render_to_response('activation/activation_signupcount.html', {'datestart':''})

    else:

        datestart = request.GET['datestart']
        dateend = request.GET['dateend']

        return render_to_response('activation/activation_signupcount.html', {'datestart':datestart, 'dateend':dateend})#
图表视图

def activation_signupcount_graph(request):

    datestart = request.GET['datestart'] #this doesnt work
    dateend = request.GET['dateend'] #this doesnt work

    print datestart,dateend

    # open sql connection
    cursor = connection.cursor()
    # execute query
    cursor.execute("SELECT COUNT(1), JoinDate FROM users WHERE JoinDate BETWEEN '"+ datestart +"' AND '"+ dateend +"' GROUP BY JoinDate;")
    # close connection

    data = cursor.fetchall()

    cursor.close()
    connection.close() 

    fig = Figure()
        ax = fig.add_subplot(111)

    x = []
    y = []

    x = [k[1] for k in data]
    y = [k[0] for k in data]

    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
因此,在页面
activation/activation\u signupcount.html
上,我有两个日期字段,分别是start和end,用于提交GET请求。所以我的问题是,我如何将这两个日期变量解析到我的函数
activation\u signupcount\u graph
,以获得生成图表的开始/结束日期


我希望这是清楚的

您可以使用带有适当参数的访问模板中的图表视图

所以它应该看起来像:

<img src="{% url yourapp.chart_view start_date end_date %}" />

或者,在使用get参数时:

<img src="{% url yourapp.chart_view %}?datestart={{ datestart }}" />

多年来一直在这样做(顺便说一句,也可以使用pySVG生成的SVG图形),但是最近我在virtualenvs中安装matplotlib时遇到了很多问题


我求助于将系统范围的matplotlib库(来自ubuntu存储库)添加到virtualenvs,而不是通常的pip安装。。。。anthem

我仍然在VirtualNVS中使用matplotlib图形。还没有遇到任何问题。使用OSX和pythonanywhere.com托管。