0

我正在尝试制作基于网络的蛇和梯子游戏Django,我正在使用它matplotlibmpld3在网页上创建和显示我的游戏数据。

我可以在网页上获取我的图像,但它是倒置的。

这段代码我哪里出错了?

我的views.py文件:

import matplotlib.image as mpimg
import mpld3 as mpld3
import numpy as np
import matplotlib.pyplot as plt

def home(request):
    image =  mpimg.imread('platform3.png')
    figure = plt.figure(dpi=100)
    subplot = figure.add_subplot(111)
    subplot.set_xlim(0, 10)
    subplot.set_ylim(0, 10)
    subplot.imshow(image, extent=[0, 10, 0, 10])
    canvas = FigureCanvas(figure)
    response = django.http.HttpResponse(content_type='image/png')
    canvas.print_png(response)
    html_gen = 'graph.html'
    with open(html_gen, 'w') as f:
        f.write(mpld3.fig_to_html(figure))
        f.write("Hello")

    return render(request, html_gen)

我也应该提供生成的 html_gen.html 文件吗?

4

1 回答 1

1

只需将 放置[0, 0]在轴的左下角:

subplot.imshow(image, extent=[0, 10, 0, 10], origin='lower')

请查看imshow()文档

更新:如何检查和设置默认image.origin

  1. 查看:

    >>> import matplotlib as mpl
    >>> print(mpl.rcParams['image.origin'])
    upper
    
  2. 设置lower为默认值(docs):

    $ echo "image.origin : lower" >> .config/matplotlib/matplotlibrc
    
  3. 再检查一遍:

    >>> import matplotlib as mpl
    >>> print(mpl.rcParams['image.origin'])
    upper
    
于 2016-12-06T23:31:44.847 回答