Как напечатать сюжет Matplotlib на HTML-странице - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь построить сложенный график с помощью Matplotlib на HTML-странице (python -cgi).У меня есть следующий скрипт

`#!/usr/bin/python 
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt, mpld3
data = {'title1': {'SA':20, 'TA':10}, 'title2':{'FA':10, 'MA':20, 
'NA':30}}
grap=pd.DataFrame(data).T.plot(kind='bar', stacked=True,figsize= . 
(16,18))
mpld3.fig_to_html(grap)
print '</body>'
print '</html>'`

Однако, когда я пытаюсь открыть скрипт в веб-браузере, он показывает ошибку.Если я удаляю «import mpdl3», скрипт работает, но изображение не видно.

Может ли кто-нибудь помочь, как встроить график в HTML-страницу.

Заранее спасибо.

1 Ответ

0 голосов
/ 25 мая 2018

Одной альтернативой этому может быть сохранение графика matplotlib как изображения с использованием чего-то вроде plt.savefig("/file/path/something.jpg"), а затем ссылка на это как <img src="/file/path/something.jpg" />, потому что сам график рендерится в фигуру, а не в stdout, где находятся операторы печатиидти.

По сути, вы не понимаете, в чем разница между стандартным выводом и цифрой.Figure - это утилита python, которая открывает окно и показывает изображение (в данном случае граф pyplot), в то время как стандартным является вывод текста вашего кода python.

mpld3 Specific

Итак, я посмотрелв mpld3 больше.Сохранение и использование img фактически не позволяет осуществлять фактическую интеграцию в том порядке, в котором вы ищете.Это позволит вам показать график на веб-странице, но это уберет интерактивность.Я предполагаю, что настоящая проблема здесь в том, что apache ищет другую установку Python.Проверьте и проверьте, установлен ли mpld3 на уровне пользователя или системы, и проверьте, какой Python устанавливает Apache.

Третья мысль

Похоже, вы неправильно импортируете mlpd3.Согласно этой странице она выглядит как import mlpd3, а не из matplotlib.

...