Я пытаюсь создать элемент веб-сайта для визуализации данных wordtree, используя деревья слов Google и flask
.
Подход, который я выбрал, основан на этом ответе, включая попытку реализовать рекомендованное форматирование здесь , и я также попытался выполнить this учебник, но мой word_trees.html
просто продолжает рендеринг пустой страницы.
Помимо загрузки данных из гораздо большего, хотя и эквивалентного .csv
в реальном приложении, соответствующие части app.py
:
from flask import Flask, render_template
import pandas as pd
import gviz_api
#create to data
lst = ["You've stolen a 'PIZZA' my heart! @CfgLaw Than",
"Did your workplace buy you pizza for #national",
"So last week on #NationalPizzaDay I had plans|",
"Last week it was #NewStartersDay and #National",
"@JurysInnsHotels #NationalPizzaDay Wow! I’m dr"]
df = pd.DataFrame({'text':lst})
#initiate app
app = Flask(__name__)
#create gvis formatted data
def get_data():
# Creating the data
description = {"text": ("string", "Text")}
data = [{"text":"{}".format(text)} for text in df.text]
# Loading it into gviz_api.DataTable
data_table = gviz_api.DataTable(description)
data_table.LoadData(data)
# Creating a JSon string
json_string = data_table.ToJSon()
return json_string
#pass data to template
@app.route("/")
def word_trees():
data = get_data()
return render_template('word_trees.html',tweets=data)
if __name__ == "__main__":
app.run(debug=True)
А word_trees.html
составляет:
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {packages:['wordtree']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable(tweets);
);
var options = {
wordtree: {
format: 'implicit',
word: 'pizza',
type: 'double'
}
};
var chart = new google.visualization.WordTree(document.getElementById('wordtree_basic'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="wordtree_basic" style="width: 900px; height: 500px;"></div>
</body>
</html>
Я ожидаю, что приложение отобразит дерево слов на основе данных в df.text
, но оно продолжает обрабатывать пустую страницу.