从Django html视图获取反转图像

时间:2016-12-06 06:00:00

标签: python django numpy matplotlib mpld3

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

我可以在网页上获取我的图像,但它已被反转。

我在这个代码中哪里出错了?

我的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文件?

1 个答案:

答案 0 :(得分:1)

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

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

请查看imshow() docs

更新:如何检查并设置默认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