gpt4 book ai didi

django - 如何在 matplotlib 中向图形添加绘图?

转载 作者:行者123 更新时间:2023-12-02 09:30:05 30 4
gpt4 key购买 nike

我正在将 matplotlib 与 django 一起使用。我正在尝试创建条形图。

我关注了cookbook ,但我只有一个灰色的矩形框。

现在我使用以下代码,并有标题和轴。

如何在图中添加条形图?目前轴内没有实际数据。

这是我的图表代码:

from matplotlib.backends.backend_agg import FigureCanvasAgg 
from matplotlib.figure import Figure
import matplotlib.pyplot as plt

class Chart(object):

## Creates a bar chart of the given data
@staticmethod
def bar(data):
figure = Figure(figsize=(6,6))
ax = figure.add_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)
plt.pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
figure.suptitle('Raining Hogs and Dogs', fontsize=14)

canvas = FigureCanvasAgg(figure)

return canvas

在我看来,我有:

canvas = Chart.bar(results)

# turn the returned canvas into an HTTP response
response=HttpResponse(content_type='image/png')
canvas.print_png(response)
return response

最佳答案

    fig = Figure()
fig = Figure(facecolor='white', edgecolor='white')
ax = fig.add_subplot(1,1,1)

x = matplotlib.numpy.arange(0, len(dic.keys()))

ind = matplotlib.numpy.arange(len(dic.values()))

height = 0.8
ax.bar(ind, dic.values(), width, color=colors)

ax.set_xticks(ind + width / 2.0)
ax.set_xticklabels(dic.keys())

padding = 0.2
ax.set_xlim([x.min() - padding, x.max() + width + padding])

canvas = FigureCanvas(fig)
response = django.http.HttpResponse(content_type='image/png')
canvas.print_png(response)
fig.savefig(filename)

这将创建一个条形图,并保存图像。只需将该函数调用到您的 View 中即可。并打开模板中的图像。我向这个函数(dic)传递了一个字典,但你可以传递一个列表,这取决于你。

在本例中,键是 x 轴,值是 y 轴。

关于django - 如何在 matplotlib 中向图形添加绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4538726/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com