在django模板中嵌入matplotlib移动图表

时间:2018-02-12 14:04:14

标签: python django matplotlib

我是python Django框架的新手。

我有 matplotlib 移动或实时图表,它应该隐藏在django模板中。我在这里检查了许多与此相关的问题,但没有一个对我有效。我们大多数人在这里建议显示为图像,但问题是移动图表,默认界面如缩放,拖动要集成的所有内容。 我正在努力解决。我使用了这段代码并且知道它将显示为图像。

def simple(request):
    import random
    import django
    import datetime

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

    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 = django.http.HttpResponse(content_type='image/png')
    canvas.print_png(response)
    return response

我使用此代码作为参考。

如果这是不可理解的请在下面发表评论,请尽量传达给您清楚

任何人都可以帮我解决这个问题。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用BOKEH图表,而不是使用matplotlib。看看Bokeh charts doc

答案 1 :(得分:1)

虽然看起来像一个简单的问题,matplotlib用来在桌面上呈现交互式图表的机制相当复杂,而不是某个人可以在某个地方插入某些HTML。

我建议您查看前端库以图形方式显示数据,然后使用后端向前端提供数据。

至于图书馆,请查看C3。它有很好的文档和例子。