当前位置: 首页 > 面试题库 >

如何在Django中使用Matplotlib?

钦枫
2023-03-14
问题内容

从Internet的一些示例中,我做了下面的测试代码。有用!

…但是,如果我重新加载页面,则饼图将使用相同的图像进行绘制。每次重新加载页面时,某些部件的颜色都会变深。当我重新启动开发服务器时,它将被重置。如何在Django中使用Matplotlib正确绘制?看起来好像还记得一些图纸…

源views.py(让urls.py链接到它):

from pylab import figure, axes, pie, title
from matplotlib.backends.backend_agg import FigureCanvasAgg

def test_matplotlib(request):
    f = figure(1, figsize=(6,6))
    ax = 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)
    pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
    title('Raining Hogs and Dogs', bbox={'facecolor':'0.8', 'pad':5})

    canvas = FigureCanvasAgg(f)    
    response = HttpResponse(content_type='image/png')
    canvas.print_png(response)
    return response

我正在使用Django 1.0.1和Python 2.6.2(Linux)。


问题答案:

你需要num从图形构造函数中删除该参数,并在完成后关闭图形。

import matplotlib.pyplot

def test_matplotlib(request):
    f = figure(figsize=(6,6))
    ....
    matplotlib.pyplot.close(f)

通过删除该num参数,你将避免同时使用同一图形。如果2个浏览器同时请求图像,则可能会发生这种情况。如果这不是问题,则另一种可能的解决方案是使用clear方法,即f.clear()。



 类似资料:
  • 问题内容: 我听说过redis-cache,但是它是如何工作的呢?通过以某种方式缓存rdbms查询,它是否被用作Django和我的rdbms之间的一层? 还是应该直接将其用作数据库?我对此表示怀疑,因为该github页面不包含任何登录详细信息,所以没有设置..只是告诉您设置一些config属性。 问题答案: 这个Redis的Python模块在自述文件中有一个清晰的用法示例:http : //git

  • 问题内容: 我正在尝试为我的Django对象获取唯一的ID。在Django 1.8中,它们具有UUIDField。我不确定如何使用此字段来为模型中的每个对象生成唯一的ID。 这是我对UUIDField的要求 我可以重现UUID模型的ID,但是每次我都得到完全相同的ID。:(。 例如: id然后每次都给我相同的id。怎么了,我该如何解决?感谢您的帮助! 问题答案: 我不确定为什么要创建UUID模型。

  • 问题内容: 我想用datepicker实现django表单。我做了我的forms.py views.py balance.html 而且在该表格的输入框中仍然没有日期选择器。我也尝试像在balance.html中一样在脚本中包含文件链接 datepicker仍然无法正常工作。但是,当在我的html文件中包含jquery时,这也使得我在我的html文件中实现的jquery-treetable无法工作

  • 问题内容: 我想在Django中使用postgreSQL模式,该怎么做? 问题答案: 我一直在使用: 过去没有意识到仅适用于只读操作。当你尝试添加新记录时,它将失败,因为该序列类似于“ schema.tablename” _column_id_seq。 到目前为止还可以。谢谢。

  • 问题内容: 我正在尝试在Django中使用jQuery / AJAX发布数据,并且遇到了麻烦。当我运行下面的代码并单击“测试”按钮时,整个页面将再次重新加载,这不是我想要的(这就是我使用AJAX的原因)。 我也无法确认AJAX请求正在进入Django视图。 编辑:我对return false和进行了编辑。无法加载新页面,但仍无法在该字段中看到更新的文本。我不确定是否正在发送数据。我在控制台中看到:

  • 问题内容: 我有一个带有数据库和相应的 models.py 文件的现有Django应用程序。 我有一个新的Tornado应用程序,可以为其他应用程序提供Web服务。它需要从同一数据库读取/写入,并且我要使用的模型文件中有代码。 如何在Tornado请求处理程序中最好地使用Django数据库和模型?它像建立到 models.py Django项目文件夹的符号链接,导入Django模块并使用它那样简单