【展示页完善】各种子菜单的显示完善
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
from flask import Flask,session,render_template,redirect,Blueprint,request
|
||||
from snownlp import SnowNLP
|
||||
from utils.getHomePageData import *
|
||||
from utils.getHotWordPageData import *
|
||||
from utils.getTableData import *
|
||||
from utils.getPublicData import getAllHotWords
|
||||
from utils.getEchartsData import *
|
||||
pb = Blueprint('page',__name__,url_prefix='/page',template_folder='templates')
|
||||
|
||||
@pb.route('/home')
|
||||
def home():
|
||||
username = session.get('username')
|
||||
articleLenMax,likeCountMaxAuthorName,cityMax = getHomeTagsData()
|
||||
commentsLikeCountTopFore = getHomeCommentsLikeCountTopFore()
|
||||
xData,yData = getHomeArticleCreatedAtChart()
|
||||
typeChart = getHomeTypeChart()
|
||||
createAtChart = getHomeCommentCreatedChart()
|
||||
# getUserNameWordCloud()
|
||||
return render_template('index.html',
|
||||
username=username,
|
||||
articleLenMax=articleLenMax,
|
||||
likeCountMaxAuthorName=likeCountMaxAuthorName,
|
||||
cityMax=cityMax,
|
||||
commentsLikeCountTopFore=commentsLikeCountTopFore,
|
||||
xData=xData,
|
||||
yData=yData,
|
||||
typeChart=typeChart,
|
||||
createAtChart=createAtChart
|
||||
)
|
||||
|
||||
@pb.route('/hotWord')
|
||||
def hotWord():
|
||||
username = session.get('username')
|
||||
hotWordList = getAllHotWords()
|
||||
defaultHotWord = hotWordList[0][0]
|
||||
if request.args.get('hotWord'):defaultHotWord = request.args.get('hotWord')
|
||||
hotWordLen = getHotWordLen(defaultHotWord)
|
||||
xData,yData = getHotWordPageCreatedAtCharData(defaultHotWord)
|
||||
sentences = ''
|
||||
value = SnowNLP(defaultHotWord).sentiments
|
||||
if value == 0.5:
|
||||
sentences = '中性'
|
||||
elif value > 0.5:
|
||||
sentences = '正面'
|
||||
elif value < 0.5:
|
||||
sentences = '负面'
|
||||
|
||||
comments = getCommentFilterData(defaultHotWord)
|
||||
return render_template('hotWord.html',
|
||||
username=username,
|
||||
hotWordList=hotWordList,
|
||||
defaultHotWord=defaultHotWord,
|
||||
hotWordLen=hotWordLen,
|
||||
sentences=sentences,
|
||||
xData=xData,
|
||||
yData=yData,
|
||||
comments=comments
|
||||
)
|
||||
|
||||
@pb.route('/tableData')
|
||||
def tableData():
|
||||
username = session.get('username')
|
||||
defaultFlag = False
|
||||
if request.args.get('flag'):defaultFlag = True
|
||||
tableData = getTableDataList(defaultFlag)
|
||||
return render_template('tableData.html',
|
||||
username=username,
|
||||
tableData=tableData,
|
||||
defaultFlag=defaultFlag
|
||||
)
|
||||
|
||||
@pb.route('/articleChar')
|
||||
def articleChar():
|
||||
username = session.get('username')
|
||||
typeList = getTypeList()
|
||||
defaultType = typeList[0]
|
||||
if request.args.get('type'): defaultType = request.args.get('type')
|
||||
xData,yData = getArticleCharLikeCount(defaultType)
|
||||
x1Data,y1Data = getArticleCharCommentsLen(defaultType)
|
||||
x2Data,y2Data = getArticleCharRepotsLen(defaultType)
|
||||
return render_template('articleChar.html',
|
||||
username=username,
|
||||
typeList=typeList,
|
||||
defaultType=defaultType,
|
||||
xData=xData,
|
||||
yData=yData,
|
||||
x1Data=x1Data,
|
||||
y1Data=y1Data,
|
||||
x2Data=x2Data,
|
||||
y2Data=y2Data
|
||||
)
|
||||
|
||||
@pb.route('/ipChar')
|
||||
def ipChar():
|
||||
username = session.get('username')
|
||||
articleRegionData = getIPCharByArticleRegion()
|
||||
commentRegionData = getIPCharByCommentsRegion()
|
||||
return render_template('ipChar.html',
|
||||
username=username,
|
||||
articleRegionData=articleRegionData,
|
||||
commentRegionData=commentRegionData
|
||||
)
|
||||
|
||||
@pb.route('/commentChar')
|
||||
def commentChar():
|
||||
username = session.get('username')
|
||||
xData,yData = getCommentCharDataOne()
|
||||
genderPieData = getCommentCharDataTwo()
|
||||
return render_template('commentChar.html',
|
||||
username=username,
|
||||
xData=xData,
|
||||
yData=yData,
|
||||
genderPieData=genderPieData
|
||||
)
|
||||
|
||||
@pb.route('/yuqingChar')
|
||||
def yuqingChar():
|
||||
username = session.get('username')
|
||||
xData,yData,bieData = getYuQingCharDataOne()
|
||||
bieData1,bieData2 = getYuQingCharDataTwo()
|
||||
x1Data,y1Data = getYuQingCharDataThree()
|
||||
return render_template('yuqingChar.html',
|
||||
username=username,
|
||||
xData=xData,
|
||||
yData=yData,
|
||||
bieData=bieData,
|
||||
bieData1=bieData1,
|
||||
bieData2=bieData2,
|
||||
x1Data=x1Data,
|
||||
y1Data=y1Data
|
||||
)
|
||||
|
||||
@pb.route('/articleCloud')
|
||||
def articleCloud():
|
||||
username = session.get('username')
|
||||
return render_template('articleContentCloud.html',
|
||||
username=username
|
||||
)
|
||||
@@ -0,0 +1,494 @@
|
||||
{% extends 'base_page.html' %}
|
||||
{% block title %}
|
||||
热词统计
|
||||
{% endblock %}
|
||||
|
||||
{% block nav %}
|
||||
<nav class="iq-sidebar-menu">
|
||||
<ul id="iq-sidebar-toggle" class="side-menu">
|
||||
<li class="px-3 pt-3 pb-2 ">
|
||||
<span class="text-uppercase small font-weight-bold">首页</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/home" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">首页</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="active sidebar-layout">
|
||||
<a href="/page/hotWord" class="svg-icon ">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">热词统计</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/tableData" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">微博舆情统计</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="px-3 pt-3 pb-2 ">
|
||||
<span class="text-uppercase small font-weight-bold">数据可视化</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/articleChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">文章分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/ipChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg class="icon line" width="18" id="receipt" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path d="M17,16V3L13,5,10,3,7,5,3,3V17.83A3.13,3.13,0,0,0,5.84,21,3,3,0,0,0,9,18V17a1,1,0,0,1,1-1H20a1,1,0,0,1,1,1v1a3,3,0,0,1-3,3H6" style="fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></path>
|
||||
<line x1="8" y1="10" x2="12" y2="10" style="fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></line>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">IP分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/commentChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path>
|
||||
</svg>
|
||||
</i><span class="ml-2">评论分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/yuqingChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">舆情分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="px-3 pt-3 pb-2">
|
||||
<span class="text-uppercase small font-weight-bold">词云图</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/articleCloud" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
|
||||
</svg>
|
||||
</i><span class="ml-2">文章内容词云图</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-4 mt-1">
|
||||
<div class="d-flex flex-wrap justify-content-between align-items-center">
|
||||
<h4 class="font-weight-bold">热词统计页</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card card-block card-stretch card-height">
|
||||
<div class="card-body">
|
||||
<div class="collapse" id="form-element-15">
|
||||
<div class="card"><kbd class="bg-dark"><pre id="select-size" class="text-white"><code>
|
||||
<div class="form-group">
|
||||
<label>Small</label>
|
||||
<select class="form-control form-control-sm mb-3">
|
||||
<option selected="">Open this select menu</option>
|
||||
<option value="1">One</option>
|
||||
<option value="2">Two</option>
|
||||
<option value="3">Three</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Default</label>
|
||||
<select class="form-control mb-3">
|
||||
<option selected="">Open this select menu</option>
|
||||
<option value="1">One</option>
|
||||
<option value="2">Two</option>
|
||||
<option value="3">Three</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Large</label>
|
||||
<select class="form-control form-control-lg">
|
||||
<option selected="">Open this select menu</option>
|
||||
<option value="1">One</option>
|
||||
<option value="2">Two</option>
|
||||
<option value="3">Three</option>
|
||||
</select>
|
||||
</div>
|
||||
</code></pre></kbd></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>热词选择</label>
|
||||
<select onchange="hotWordChange(event)" class="form-control mb-3">
|
||||
{% for i in hotWordList %}
|
||||
{% if defaultHotWord == i[0] %}
|
||||
<option selected value="{{ i[0] }}">{{ i[0] }}</option>
|
||||
{% else %}
|
||||
<option value="{{ i[0] }}">{{ i[0] }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
<script>
|
||||
function hotWordChange(e){
|
||||
window.location.href = 'http://127.0.0.1:5000/page/hotWord?hotWord=' + e.target.value
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="justify-content: center">
|
||||
<div class="col-md-6 col-xl-6">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title font-size-16 mt-0">{{ defaultHotWord }}</h4>
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item">热词名称:{{ defaultHotWord }}</li>
|
||||
<li class="list-group-item">出现次数:{{ hotWordLen }}次</li>
|
||||
<li class="list-group-item">热词情感:{{ sentences }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title font-size-16 mt-0">热词年份变化趋势</h4>
|
||||
</div>
|
||||
<div id="main" style="width:100%;height: 450px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between">
|
||||
<div class="header-title">
|
||||
<h4 class="card-title">热词查询表格</h4>
|
||||
</div>
|
||||
<div class="header-action">
|
||||
<i data-toggle="collapse" data-target="#datatable-1" aria-expanded="false">
|
||||
<svg width="20" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path>
|
||||
</svg>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="collapse" id="datatable-1">
|
||||
<div class="card"><kbd class="bg-dark">
|
||||
<pre id="bootstrap-datatables" class="text-white"><code>
|
||||
<table id="datatable" class="table data-table table-striped table-bordered" >
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Position</th>
|
||||
<th>Office</th>
|
||||
<th>Age</th>
|
||||
<th>Start date</th>
|
||||
<th>Salary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Tiger Nixon</td>
|
||||
<td>System Architect</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>61</td>
|
||||
<td>2011/04/25</td>
|
||||
<td>$320,800</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Garrett Winters</td>
|
||||
<td>Accountant</td>
|
||||
<td>Tokyo</td>
|
||||
<td>63</td>
|
||||
<td>2011/07/25</td>
|
||||
<td>$170,750</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ashton Cox</td>
|
||||
<td>Junior Technical Author</td>
|
||||
<td>San Francisco</td>
|
||||
<td>66</td>
|
||||
<td>2009/01/12</td>
|
||||
<td>$86,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Cedric Kelly</td>
|
||||
<td>Senior Javascript Developer</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>22</td>
|
||||
<td>2012/03/29</td>
|
||||
<td>$433,060</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Airi Satou</td>
|
||||
<td>Accountant</td>
|
||||
<td>Tokyo</td>
|
||||
<td>33</td>
|
||||
<td>2008/11/28</td>
|
||||
<td>$162,700</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brielle Williamson</td>
|
||||
<td>Integration Specialist</td>
|
||||
<td>New York</td>
|
||||
<td>61</td>
|
||||
<td>2012/12/02</td>
|
||||
<td>$372,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Herrod Chandler</td>
|
||||
<td>Sales Assistant</td>
|
||||
<td>San Francisco</td>
|
||||
<td>59</td>
|
||||
<td>2012/08/06</td>
|
||||
<td>$137,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rhona Davidson</td>
|
||||
<td>Integration Specialist</td>
|
||||
<td>Tokyo</td>
|
||||
<td>55</td>
|
||||
<td>2010/10/14</td>
|
||||
<td>$327,900</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Colleen Hurst</td>
|
||||
<td>Javascript Developer</td>
|
||||
<td>San Francisco</td>
|
||||
<td>39</td>
|
||||
<td>2009/09/15</td>
|
||||
<td>$205,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sonya Frost</td>
|
||||
<td>Software Engineer</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>23</td>
|
||||
<td>2008/12/13</td>
|
||||
<td>$103,600</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jena Gaines</td>
|
||||
<td>Office Manager</td>
|
||||
<td>London</td>
|
||||
<td>30</td>
|
||||
<td>2008/12/19</td>
|
||||
<td>$90,560</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Quinn Flynn</td>
|
||||
<td>Support Lead</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>22</td>
|
||||
<td>2013/03/03</td>
|
||||
<td>$342,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Charde Marshall</td>
|
||||
<td>Regional Director</td>
|
||||
<td>San Francisco</td>
|
||||
<td>36</td>
|
||||
<td>2008/10/16</td>
|
||||
<td>$470,600</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Haley Kennedy</td>
|
||||
<td>Senior Marketing Designer</td>
|
||||
<td>London</td>
|
||||
<td>43</td>
|
||||
<td>2012/12/18</td>
|
||||
<td>$313,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tatyana Fitzpatrick</td>
|
||||
<td>Regional Director</td>
|
||||
<td>London</td>
|
||||
<td>19</td>
|
||||
<td>2010/03/17</td>
|
||||
<td>$385,750</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Michael Silva</td>
|
||||
<td>Marketing Designer</td>
|
||||
<td>London</td>
|
||||
<td>66</td>
|
||||
<td>2012/11/27</td>
|
||||
<td>$198,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Paul Byrd</td>
|
||||
<td>Chief Financial Officer (CFO)</td>
|
||||
<td>New York</td>
|
||||
<td>64</td>
|
||||
<td>2010/06/09</td>
|
||||
<td>$725,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gloria Little</td>
|
||||
<td>Systems Administrator</td>
|
||||
<td>New York</td>
|
||||
<td>59</td>
|
||||
<td>2009/04/10</td>
|
||||
<td>$237,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bradley Greer</td>
|
||||
<td>Software Engineer</td>
|
||||
<td>London</td>
|
||||
<td>41</td>
|
||||
<td>2012/10/13</td>
|
||||
<td>$132,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dai Rios</td>
|
||||
<td>Personnel Lead</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>35</td>
|
||||
<td>2012/09/26</td>
|
||||
<td>$217,500</td>
|
||||
</tr>
|
||||
</table>
|
||||
</code></pre></kbd></div>
|
||||
</div>
|
||||
<p>根据选择的热词从而查询出评论数据</p>
|
||||
<div class="table-responsive">
|
||||
<div id="datatable-1_wrapper" class="dataTables_wrapper dt-bootstrap4">
|
||||
<div class="row"><div class="col-sm-12"><table id="datatable-1" class="table data-table table-striped table-bordered dataTable" role="grid" aria-describedby="datatable-1_info">
|
||||
<thead>
|
||||
<tr role="row">
|
||||
<th class="sorting sorting_asc" tabindex="0" aria-controls="datatable-1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Name: activate to sort column descending" style="width: 250.844px;">文章ID</th>
|
||||
<th class="sorting" tabindex="0" aria-controls="datatable-1" rowspan="1" colspan="1" aria-label="Position: activate to sort column ascending" style="width: 392.094px;">评论用户</th>
|
||||
<th class="sorting" tabindex="0" aria-controls="datatable-1" rowspan="1" colspan="1" aria-label="Office: activate to sort column ascending" style="width: 190.75px;">评论性别</th>
|
||||
<th class="sorting" tabindex="0" aria-controls="datatable-1" rowspan="1" colspan="1" aria-label="Age: activate to sort column ascending" style="width: 84.2656px;">评论地址</th>
|
||||
<th class="sorting" tabindex="0" aria-controls="datatable-1" rowspan="1" colspan="1" aria-label="Start date: activate to sort column ascending" style="width: 172.594px;">评论内容</th>
|
||||
<th class="text-right sorting" tabindex="0" aria-controls="datatable-1" rowspan="1" colspan="1" aria-label="Salary: activate to sort column ascending" style="width: 158.453px;">点赞量</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in comments %}
|
||||
<tr class="odd">
|
||||
<td class="sorting_1">{{ i[0] }}</td>
|
||||
<td>{{ i[5] }}</td>
|
||||
<td>
|
||||
{% if i[6] =='f' %}
|
||||
女生
|
||||
{% else %}
|
||||
男生
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ i[3] }}</td>
|
||||
<td>{{ i[4] }}</td>
|
||||
<td class="text-right">👍{{ i[2] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block echarts %}
|
||||
<script>
|
||||
var chartDom = document.getElementById('main');
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option;
|
||||
|
||||
option = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: ['热词出现时间分布个数']
|
||||
},
|
||||
toolbox: {
|
||||
show: true,
|
||||
feature: {
|
||||
dataView: { show: true, readOnly: false },
|
||||
magicType: { show: true, type: ['line', 'bar'] },
|
||||
restore: { show: true },
|
||||
saveAsImage: { show: true }
|
||||
}
|
||||
},
|
||||
calculable: true,
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
// prettier-ignore
|
||||
data: {{ xData | tojson }}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
dataZoom: [
|
||||
{
|
||||
show: true,
|
||||
start: 10,
|
||||
end: 60
|
||||
},
|
||||
{
|
||||
type: 'inside',
|
||||
start: 10,
|
||||
end: 60
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '热词出现时间分布个数',
|
||||
type: 'bar',
|
||||
data: {{ yData }},
|
||||
markPoint: {
|
||||
data: [
|
||||
{ type: 'max', name: 'Max' },
|
||||
{ type: 'min', name: 'Min' }
|
||||
]
|
||||
},
|
||||
markLine: {
|
||||
data: [{ type: 'average', name: 'Avg' }]
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
option && myChart.setOption(option);
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1 @@
|
||||
{% extends 'base_page.html' %}
|
||||
@@ -0,0 +1,215 @@
|
||||
{% extends 'base_page.html' %}
|
||||
|
||||
{% block title %}
|
||||
微博舆情统计页
|
||||
{% endblock %}
|
||||
{% block nav %}
|
||||
<nav class="iq-sidebar-menu">
|
||||
<ul id="iq-sidebar-toggle" class="side-menu">
|
||||
<li class="px-3 pt-3 pb-2 ">
|
||||
<span class="text-uppercase small font-weight-bold">首页</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/home" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">首页</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/hotWord" class="svg-icon ">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">热词统计</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="active sidebar-layout">
|
||||
<a href="/page/tableData" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">微博舆情统计</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="px-3 pt-3 pb-2 ">
|
||||
<span class="text-uppercase small font-weight-bold">数据可视化</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/articleChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">文章分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/ipChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg class="icon line" width="18" id="receipt" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path d="M17,16V3L13,5,10,3,7,5,3,3V17.83A3.13,3.13,0,0,0,5.84,21,3,3,0,0,0,9,18V17a1,1,0,0,1,1-1H20a1,1,0,0,1,1,1v1a3,3,0,0,1-3,3H6" style="fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></path>
|
||||
<line x1="8" y1="10" x2="12" y2="10" style="fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></line>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">IP分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/commentChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path>
|
||||
</svg>
|
||||
</i><span class="ml-2">评论分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/yuqingChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">舆情分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="px-3 pt-3 pb-2">
|
||||
<span class="text-uppercase small font-weight-bold">词云图</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/articleCloud" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
|
||||
</svg>
|
||||
</i><span class="ml-2">文章内容词云图</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-4 mt-1">
|
||||
<div class="d-flex flex-wrap justify-content-between align-items-center">
|
||||
<h4 class="font-weight-bold">微博舆情统计页</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between">
|
||||
<div class="header-title">
|
||||
<h4 class="card-title">微博文章统计表格 - 舆情 情感分类
|
||||
</h4>
|
||||
</div>
|
||||
<div class="header-action">
|
||||
<i data-toggle="collapse" data-target="#datatable-1" aria-expanded="false">
|
||||
<svg width="20" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path>
|
||||
</svg>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p><a href="/page/tableData?flag=True" class="btn btn-primary btn-sm">情感分类</a></p>
|
||||
<div class="table-responsive">
|
||||
<div id="datatable-1_wrapper" class="dataTables_wrapper dt-bootstrap4">
|
||||
<div class="row">
|
||||
<table id="datatable-1" class="table data-table table-striped table-bordered dataTable" role="grid" aria-describedby="datatable-1_info">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="font-weight: bold">
|
||||
文章ID
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
文章IP
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
点赞量
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
转发量
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
评论量
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
类型
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
内容
|
||||
</th>
|
||||
<th style="font-weight: bold">
|
||||
发布时间
|
||||
</th>
|
||||
{% if defaultFlag %}
|
||||
<th style="font-weight: bold">
|
||||
情感分类
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for article in tableData %}
|
||||
<tr class="even">
|
||||
<td style="width:330px" class="sorting_1">
|
||||
<a href="{{ article[9] }}">
|
||||
{{ article[0] }}
|
||||
</a>
|
||||
</td>
|
||||
<td style="width:90px">{{ article[4] }}</td>
|
||||
<td style="width:90px">👍{{ article[1] }}</td>
|
||||
<td style="width:90px">🥇{{ article[2] }}</td>
|
||||
<td style="width:90px">🔥{{ article[3] }}</td>
|
||||
<td style="width:90px" class="text-right">{{ article[8] }}</td>
|
||||
<td style="width:155px" class="text-right">{{ article[5] }}</td>
|
||||
<td style="width:90px" class="text-right">{{ article[7] }}</td>
|
||||
{% if defaultFlag %}
|
||||
<td style="width:90px">
|
||||
{% if article[-1] == '正面' %}
|
||||
<span class="text-success">
|
||||
{{ article[-1] }}
|
||||
</span>
|
||||
|
||||
{% else %}
|
||||
<span class="text-danger">
|
||||
{{ article[-1] }}
|
||||
</span>
|
||||
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block echarts %}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,363 @@
|
||||
{% extends 'base_page.html' %}
|
||||
{% block title %}
|
||||
舆情分析
|
||||
{% endblock %}
|
||||
{% block nav %}
|
||||
<nav class="iq-sidebar-menu">
|
||||
<ul id="iq-sidebar-toggle" class="side-menu">
|
||||
<li class="px-3 pt-3 pb-2 ">
|
||||
<span class="text-uppercase small font-weight-bold">首页</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/home" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">首页</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/hotWord" class="svg-icon ">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">热词统计</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/tableData" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">微博舆情统计</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="px-3 pt-3 pb-2 ">
|
||||
<span class="text-uppercase small font-weight-bold">数据可视化</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/articleChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">文章分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/ipChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg class="icon line" width="18" id="receipt" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path d="M17,16V3L13,5,10,3,7,5,3,3V17.83A3.13,3.13,0,0,0,5.84,21,3,3,0,0,0,9,18V17a1,1,0,0,1,1-1H20a1,1,0,0,1,1,1v1a3,3,0,0,1-3,3H6" style="fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></path>
|
||||
<line x1="8" y1="10" x2="12" y2="10" style="fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2;"></line>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">IP分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/commentChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path>
|
||||
</svg>
|
||||
</i><span class="ml-2">评论分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="active sidebar-layout">
|
||||
<a href="/page/yuqingChar" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
|
||||
</svg>
|
||||
</i>
|
||||
<span class="ml-2">舆情分析</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="px-3 pt-3 pb-2">
|
||||
<span class="text-uppercase small font-weight-bold">词云图</span>
|
||||
</li>
|
||||
<li class=" sidebar-layout">
|
||||
<a href="/page/articleCloud" class="svg-icon">
|
||||
<i class="">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" fill="none" viewbox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
|
||||
</svg>
|
||||
</i><span class="ml-2">文章内容词云图</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-4 mt-1">
|
||||
<div class="d-flex flex-wrap justify-content-between align-items-center">
|
||||
<h4 class="font-weight-bold">舆情分析</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card card-block">
|
||||
<div class="card-header d-flex justify-content-between pb-0">
|
||||
<div class="header-title">
|
||||
<h4 class="card-title mb-0">热词情感趋势柱状图</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="main" style="width: 100%;height: 450px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card card-block">
|
||||
<div class="card-header d-flex justify-content-between pb-0">
|
||||
<div class="header-title">
|
||||
<h4 class="card-title mb-0">热词情感趋势树形图</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="mainTwo" style="width: 100%;height: 450px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card card-block">
|
||||
<div class="card-header d-flex justify-content-between pb-0">
|
||||
<div class="header-title">
|
||||
<h4 class="card-title mb-0">文章内容与评论内容舆情趋势饼状图</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="mainThree" style="width: 100%;height: 450px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card card-block">
|
||||
<div class="card-header d-flex justify-content-between pb-0">
|
||||
<div class="header-title">
|
||||
<h4 class="card-title mb-0">热词TOP10</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="mainFore" style="width: 100%;height: 450px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block echarts %}
|
||||
<script>
|
||||
var chartDom = document.getElementById('main');
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option;
|
||||
|
||||
var colors = ['#66CC99', '#FFCC66', '#FF6666'];
|
||||
option = {
|
||||
title: {
|
||||
text: '热词情感分析柱状图'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: ['Rainfall']
|
||||
},
|
||||
toolbox: {
|
||||
show: true,
|
||||
feature: {
|
||||
dataView: { show: true, readOnly: false },
|
||||
magicType: { show: true, type: ['line', 'bar'] },
|
||||
restore: { show: true },
|
||||
saveAsImage: { show: true }
|
||||
}
|
||||
},
|
||||
calculable: true,
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
// prettier-ignore
|
||||
data: {{ xData | tojson }}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '舆情个数',
|
||||
type: 'bar',
|
||||
data: {{ yData }},
|
||||
markPoint: {
|
||||
data: [
|
||||
{ type: 'max', name: 'Max' },
|
||||
{ type: 'min', name: 'Min' }
|
||||
]
|
||||
},
|
||||
markLine: {
|
||||
data: [{ type: 'average', name: 'Avg' }]
|
||||
},
|
||||
itemStyle: {
|
||||
color: function (parmas) {
|
||||
return colors[parmas.dataIndex % colors.length];
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
option && myChart.setOption(option);
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var chartDom = document.getElementById('mainTwo');
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option;
|
||||
|
||||
option = {
|
||||
series: [
|
||||
{
|
||||
type: 'treemap',
|
||||
data: {{ bieData | tojson }}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
option && myChart.setOption(option);
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var chartDom = document.getElementById('mainThree');
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option;
|
||||
|
||||
option = {
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
},
|
||||
legend: {
|
||||
data: [
|
||||
'正面',
|
||||
'负面',
|
||||
'中性'
|
||||
]
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '评论舆情结果',
|
||||
type: 'pie',
|
||||
selectedMode: 'single',
|
||||
radius: [0, '30%'],
|
||||
label: {
|
||||
position: 'inner',
|
||||
fontSize: 14
|
||||
},
|
||||
labelLine: {
|
||||
show: false
|
||||
},
|
||||
data: {{ bieData1 | tojson }}
|
||||
},
|
||||
{
|
||||
name: '文章舆情结果',
|
||||
type: 'pie',
|
||||
radius: ['45%', '60%'],
|
||||
labelLine: {
|
||||
length: 30
|
||||
},
|
||||
label: {
|
||||
formatter: '{a|{a}}{abg|}\n{hr|}\n {b|{b}:}{c} {per|{d}%} ',
|
||||
backgroundColor: '#F6F8FC',
|
||||
borderColor: '#8C8D8E',
|
||||
borderWidth: 1,
|
||||
borderRadius: 4,
|
||||
rich: {
|
||||
a: {
|
||||
color: '#6E7079',
|
||||
lineHeight: 22,
|
||||
align: 'center'
|
||||
},
|
||||
hr: {
|
||||
borderColor: '#8C8D8E',
|
||||
width: '100%',
|
||||
borderWidth: 1,
|
||||
height: 0
|
||||
},
|
||||
b: {
|
||||
color: '#4C5058',
|
||||
fontSize: 14,
|
||||
fontWeight: 'bold',
|
||||
lineHeight: 33
|
||||
},
|
||||
per: {
|
||||
color: '#fff',
|
||||
backgroundColor: '#4C5058',
|
||||
padding: [3, 4],
|
||||
borderRadius: 4
|
||||
}
|
||||
}
|
||||
},
|
||||
data: {{ bieData2 | tojson }}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
option && myChart.setOption(option);
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var chartDom = document.getElementById('mainFore');
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option;
|
||||
|
||||
option = {
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
}
|
||||
},
|
||||
legend: {},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'value',
|
||||
boundaryGap: [0, 0.01]
|
||||
},
|
||||
yAxis: {
|
||||
type: 'category',
|
||||
data: {{ x1Data | tojson }}
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '热词出现个数',
|
||||
type: 'bar',
|
||||
data:{{ y1Data }}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
option && myChart.setOption(option);
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user