2021.12.05(echarts生成mysql表词云)

访问数据库的数据绘制词云
数据可视化echarts+mysql+python+flask
下面是后端代码:

from flask import Flask,render_template
import json
import pymysql
app = Flask(__name__)


@app.route('/')
def hello_world():
return render_template('index1.html')
@app.route('/test', methods=['POST'])
def mytest():
con = pymysql.connect(host='localhost',user='root',passwd='cbj123',db='bigdata',port=3306,charset='utf8')
cur = con.cursor()
sql = 'select * from hero'
cur.execute(sql)
see = cur.fetchall()

word = []
count = []
jsonData = {}
for data in see:
word.append(data[0])
count.append(data[1])
jsonData['word'] = word
jsonData['count'] = count
j = json.dumps(jsonData)

cur.close()
con.close()
return (j)

if __name__ == '__main__':
app.run(debug=True)

下面是前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 引入 echarts.js -->
<script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<!-- 引入jquery.js -->
<script src="https://cdn.bootcss.com/echarts/4.1.0.rc2/echarts.min.js"></script>
<script src="../static/echarts-wordcloud.min.js"></script>

</head>
<body>
<div id="main" style="100%;height: 800px;border: 1px solid black"></div>

<script type="text/javascript">
var myChart = echarts.init(document.getElementById('main'));
var app={
word1:[],
count1:[]
};
$(document).ready(function () {
getData();
console.log(app.word1);
console.log(app.count1);

});
function getData() {
$.ajax({
url: '/test',
data: {},
type: 'POST',
async: false,
dataType: 'json',
success: function (data) {
app.word1 = data.word;
app.count1 = data.count;
}
});
}
getData();
var aa=[];
for(var i = 0;i<app.word1.length;i++){
aa.push({
name:app.word1[i],
value: app.count1[i]
})
}

option = {
title: {
text: '词云',
x: 'center',
textStyle: {
fontSize: 23
}

},
backgroundColor: '#F7F7F7',
tooltip: {
show: true
},
series: [{
type: 'wordCloud',
textPadding: 0,
textStyle: {
normal: {
color: function() {
return 'rgb(' + [
Math.round(Math.random() * 160),
Math.round(Math.random() * 160),
Math.round(Math.random() * 160)
].join(',') + ')';
}
}
},
data: aa
}]
};
myChart.setOption(option);

</script>

</body>
</html>

效果如下:


转载于:https://blog.csdn.net/No1Brother_Jian/article/details/90754499

原文地址:https://www.cnblogs.com/marr/p/15646859.html