python - 如何在 django 模板中传递 matplotlib 图?
问题描述
我正在尝试在 Django 模板中传递 matplotlib 图。在使用分析功能的views.py 文件中,我创建了一个图表。然后我将此图传递给我的 Django 模板。但是我的 Django 模板中除了[<matplotlib.lines.Line2D object at 0x000001E39AB94F98>]
. 我怎样才能解决这个问题?
我的意见.py
from django.shortcuts import render,redirect
from django.contrib.auth import login,authenticate,logout
from diabetes.forms import UserSignupForm,UserLoginForm,MeasurementsForm
from diabetes.models import Measurements
import pandas as pd
import matplotlib.pyplot as plt
def analyze(request):
qs=Measurements.objects.all().values()
data=pd.DataFrame(qs)
img=plt.plot(data.loc[:,'created'],data.loc[:,'d_value'])
return render(request,'diabetes/analyze.html',{'df':img})
解决方案
重复 - 这个问题在这里得到了回答
基本上,您需要将图像保存为文件(例如 png)
buffer = BytesIO()
plt.savefig(buffer, format='png')
buffer.seek(0)
image_png = buffer.getvalue()
buffer.close()
graphic = base64.b64encode(image_png)
graphic = graphic.decode('utf-8')
return render(request, 'graphic.html',{'graphic':graphic})
然后在您的模板中使用该图像:
<img src="data:image/png;base64,{{ graphic|safe }}">
推荐阅读
- json - 实体框架在反序列化后无法保存 JSON 对象
- azure-virtual-network - 连接到 Azure VPN 网关的两个站点到站点 VPN 连接之间的连接
- css - 在 CSS 代码中创建异常
- ruby-on-rails - Wicked_pdf 多个 pdf 的同一页
- bash - 这个涉及“查找”和“此处字符串”的命令是如何执行的?
- java - Java Files.Copy 删除第一个文件的内容
- r - 如何在面板空间模型中包含解释变量的空间滞后?
- amazon-web-services - AWS-DeepLens:如何在 S3 中访问预训练模型以进行对象识别
- vba - 逐行连接所有列
- python - 如何添加/添加两个或多个 Python 字典?