全球新闻数据可视化(2)--php连接数据库与数据可视化
上次文章主要介绍了全球新闻数据的下载,以及一些基本的利用python进行处理操作,本次介绍相关数据的查询和可视化操作。
(7条消息) 全球新闻数据可视化(1)--数据下载与处理_小汤爱学习的博客-CSDN博客https://blog.csdn.net/m0_55245520/article/details/130167097
目录
一、俄乌冲突数据提取
1、筛选俄乌冲突
2、俄乌冲突查询
(1)创建视图
(2)相关信息查询
二、可视化与数据库连接
1、可视化
2、PHP连接数据库
(1)php连接数据库
(2)读取数据库信息并传递
(3)前端获取数据
一、俄乌冲突数据提取
1、筛选俄乌冲突
CREATE TABLE export_rus_ukr LIKE export;
INSERT INTO export_rus_ukr SELECT *
FROM
export
WHERE
(Actor1CountryCode = "RUS" AND Actor2CountryCode = "UKR" )
OR ( Actor1CountryCode = "UKR" AND Actor2CountryCode = "RUS" )
OR (SOURCEURL LIKE '%Russia%' AND SOURCEURL LIKE '%Ukrain%')
SELECT count(*) FROM export_rus_ukr;
SELECT Actor1CountryCode,Actor2CountryCode,SOURCEURL FROM export_rus_ukr WHERE
SOURCEURL LIKE '%Russia%' OR SOURCEURL LIKE '%Ukrainian%';
根据Actor1CountryCode、Actor2CountryCode、以及SOURCEFUL字段进行筛选,得到结果如下
2、俄乌冲突查询
(1)创建视图
视图可以加跨我们的查询,并占用较少的内存空间
create view AvgTone_mod AS
select GLOBALEVENTID, MonthYear, Actor1CountryCode as Country, quadclass,
GoldsteinScale, AvgTone, SOURCEURL
FROM export_rus_ukr
where Actor1CountryCode is not null;
(2)相关信息查询
主要查询了每月的新闻总数,每月的不同情绪新闻数量,情绪占比等等,为搭建可视化大屏提供后端技术栈支持
-- 1、每月乌克兰、俄罗斯新闻数
select MonthYear,count(GLOBALEVENTID) as count_event
FROM avgtone_mod
GROUP BY MonthYear
-- 2、每月不同情绪的新闻数
select MonthYear, AvgTone, Count(GLOBALEVENTID) as count_event
FROM avgtone_mod
GROUP BY MonthYear, AvgTone
ORDER BY AvgTone,MonthYear
-- 3、总体不同情绪的新闻占比
SELECT p.AvgTone, p.count_event/s.sum
FROM
(select AvgTone, Count(GLOBALEVENTID) as count_event
FROM avgtone_mod
GROUP BY AvgTone) p,
(select count(GLOBALEVENTID) as sum
FROM avgtone_mod) s
-- 4、每月不同情绪的新闻占比
SELECT p.MonthYear, p.AvgTone, p.count_event/s.sum
FROM
(select MonthYear, AvgTone, Count(GLOBALEVENTID) as count_event
FROM avgtone_mod
GROUP BY MonthYear, AvgTone) p,
(select MonthYear,count(GLOBALEVENTID) as sum
FROM avgtone_mod
GROUP BY MonthYear) s
WHERE p.MonthYear=s.MonthYear
-- 5、每月冲突与合作的数量
SELECT monthyear, quadclass, count(GLOBALEVENTID) as count_event
FROM AvgTone_mod
GROUP BY QuadClass,MonthYear
二、可视化与数据库连接
1、可视化
本次可视化分为纯html页面和php页面两种,我们首先利用php连接数据库进行可视化操作,这样使得 可视化图像能够随着数据库内数据改变而改变。但由于数据量大,在进行可视化图像加载时需要花费较 大的时间。因此我们制作了html静态页面,将查询所得数据直接写入表中,由此得到纯html静态页面。 并最终将页面部署到服务器。
主要用到echarts
echarts链接:https://echarts.apache.org/zh/index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div id="main" style="height:300px;"></div>
</body>
例如这里添加一个名为main的盒子,然后再script中使用echarts
<script>var myChart = echarts.init(document.getElementById('main'));var option = {series: [{radius:'80%',type: 'liquidFill',data: [0.94,0.05,0.04,0.03,0.02,0.01],label: {normal:{textStyle:{fontSize:30,fontWeight: 'normal',}}},}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);
</script>
此处记得在html的头文件中引入echarts,有两种方法:
(1)直接从GitHub下载源码,然后将源码放置在自己的js文件夹下进行引入
源码下载地址:https://github.com/apache/echarts/tree/5.4.2/dist
根据自己的需要下载即可
引用方法:
<script src="../js/echarts.js"></script>
(2)从cdn线上引入,这种方法不需要下载源码
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.4.2/echarts.js"></script>
绘制出来的水球图:
可视化整体效果如图所示:
2、PHP连接数据库
通过php连接数据库能够进行实时查询,得到数据库中的最新数据,只需要将文件在Apache相关文件夹下,在网页中输入地址即可得到连接数据库的数据,这样,数据库更新图表也能实时更新。
(1)php连接数据库
coon.php文件
<?php
$link=mysqli_connect("localhost","root","password");
mysqli_select_db($link,"news");
mysqli_query($link,"set names 'utf8'");
?>
(2)读取数据库信息并传递
totalnews.php文件
<?phpsession_start();require("D:/PHP/htdocs/news/componets/coon.php");//查询代码$sql = "SELECT MonthYear,COUNT(GLOBALEVENTID) numFROM export_rus_ukrGROUP BY MonthYearORDER BY MonthYear";$result = mysqli_query($link, $sql);$data = array();$as = "";class User{public $monthyear;public $num;}while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {$user = new User();$user->monthyear = $row['MonthYear'];$user->num = $row['num'];$data[] = $user;}echo json_encode($data);//mysqli_close($conn);// 关闭MySQL数据库连接
?>
(3)前端获取数据
利用ajax获取php传来的数据,并将数据传给echarts进行绘图
index.html文件
<script type="text/javascript">var arr = new Array();//数字var res = new Array();//名字var option;function getNumber() {$.ajax({type: "post",async: false, //异步执行url: "../sql/totalnews.php", //SQL数据库文件data: {}, //发送给数据库的数据dataType: "json", //json类型success: function(result) {if (result) {for (var i = 0; i < result.length; i++) {res.push(result[i].monthyear);arr.push(result[i].num);}}},error: function() {alert('Ajax request 发生错误');}})return res, arr;}
</script>
至此便完成了数据库的连接和可视化工作。
下次将介绍利用Bert和LSTM进行新闻文本的情感分析
全球新闻数据可视化(2)--php连接数据库与数据可视化相关推荐
- python连接数据库生成可视化_python3.6 连接数据库并用matplotlib可视化代码
python3连接数据库并用matplotlib可视化代码,自己保存的代码,希望大神可以优化! ###############数据库连接并导入相应的表+表头###################### ...
- 全球新闻数据可视化(1)--数据下载与处理
一.GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的.广播的和web 形式的,识别人员.位 ...
- EDG夺冠,用爬虫+数据分析+自然语言处理(情感分析)+数据可视化分析3万条数据:粉丝都疯了(唯一原创)
原创不易,本文禁止抄袭.转载,违权必究! 目录 一.EDG夺冠信息 二.实战目标 2.1 网络爬虫 2.2 数据可视化(词云图) 2.3 自然语言处理(情感分析) 三.bilibili接口分析 四.编 ...
- 可视化效果解读:将数据转成图形图像显示
可视化效果具体是什么意思?小编再网上搜集了相关资料,希望能对大家有所帮助. 可视化效果什么意思-百度知道解释 在网上搜了一下..应该是播放音乐时的效果 下面是一个关于这种效果的介绍 使用 Window ...
- 阿里云全球首批MVP张建平专访 - 我对数据有执念
昨天我们采访了阿里云全球首批MVP傅奎,让我们认识到了一个"可爱""谦虚"的安全大牛. 今天很荣幸给大家介绍另一位阿里云MVP(阿里云MVP计划),数据分析专家 ...
- envi栅格TIF数据进行分割_常用水文气象数据读取及其可视化(二进制、HDF5、NetCDF)以GLDAS、MODIS、GSMaP为例...
" 地学.水文.气象领域的自然科学数据通常以netcdf.hdf.二进制等方式存储,比如温度.降水.蒸发数据等:学会这些数据格式的读取和可视化是进行地学统计分析计算的关键,python提供了 ...
- 关于pyecharts可视化中国经济、人口等数据
首先pyecharts是个可视化的好工具,pyecharts已做了变更目前是1.6.2版本,但工具的灵活运用学习过程还是很痛苦的. 其次通过pandas处理数据集问题,在pandas进行数据清洗转换汇 ...
- 数据大屏|基于Flask搭建数据可视化大屏1
项目概述 本文主要基于Flask,ECharts等,利用疫情数据搭建可视化大屏,供加深印象学习.学习案例来源网上开源项目,这里进行逐一拆分复现. 应用技术:Python,Flask,ECharts,M ...
- python数据分析及可视化(九)pandas数据规整(分组聚合、数据透视表、时间序列、数据分析流程)
作业 拼接多个csv文件 去除重复数据,重新索引 自动挡和手动挡数目 计算每个城市二手车数量 统计每个汽车品牌平均售价价格(不是原价) 分组与聚合 如下表所示,5行3列的表格,5种水果分别对应的名称, ...
最新文章
- linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
- 利用angular4和nodejs-express构建一个简单的网站(九)—用户登录
- 发现自己竟然有点恐高,郁闷
- rabitMQ-centos7安装
- 面试官问你的缺点是什么,该如何回答?
- Dapper的基本使用
- Redis的两种持久化介绍与对比
- PLC编程软件等工具打包下载1.0【好用绿色三菱plc编程软件】
- html阿里矢量图标库,分析Iconfont-阿里巴巴矢量常用图标库
- web前端设计与开发作品:旅游酒店网站设计——中国风的温泉酒店预订网站全套html模板(13页) HTML+CSS+JavaScript
- 伺服驱动器--增益调整
- 关于OSS如何获得直接访问文件的路径,哪位朋友指点一二??感激不尽
- .net core mvc中使用ef
- FPGA和USB3.0通信-UVC摄像机
- 怎样使用计算机网络,手机使用电脑网络怎么操作 手机使用电脑网络操作方法...
- 牧羊人和金斧子|不要和产品聊天!
- vmware workstation添加共享硬盘的步骤
- zbb20180930 Postman 使用方法详解
- C语言 实现 最长名字输出
- STM32cube HAL库两条命令实现i2c通信---Nucleo L476RG用I2C实现tmp117模块温度读取并串口打印
热门文章
- py2exe打包matplotlib
- java图片异步加载_使用java concurrent处理异步加载图片功能
- 怎么更改计算机用户开机密码,怎么设置电脑开机密码 图文结合一看就会
- 计算机设备和打印机打不开,教你win7电脑中的设备和打印机无法打开怎么办
- Dimensional Modeling
- java/php/net/python高校心理测评系统设计
- box–jenkins模型_教程– EMFStore –模型库
- python生成二维码代码_python 一行代码生成 二维码
- Java--判断语句
- HDU 4749 Parade Show(暴力水果)