上次文章主要介绍了全球新闻数据的下载,以及一些基本的利用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

首先为echarts在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连接数据库与数据可视化相关推荐

  1. python连接数据库生成可视化_python3.6 连接数据库并用matplotlib可视化代码

    python3连接数据库并用matplotlib可视化代码,自己保存的代码,希望大神可以优化! ###############数据库连接并导入相应的表+表头###################### ...

  2. 全球新闻数据可视化(1)--数据下载与处理

    一.GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的.广播的和web 形式的,识别人员.位 ...

  3. EDG夺冠,用爬虫+数据分析+自然语言处理(情感分析)+数据可视化分析3万条数据:粉丝都疯了(唯一原创)

    原创不易,本文禁止抄袭.转载,违权必究! 目录 一.EDG夺冠信息 二.实战目标 2.1 网络爬虫 2.2 数据可视化(词云图) 2.3 自然语言处理(情感分析) 三.bilibili接口分析 四.编 ...

  4. 可视化效果解读:将数据转成图形图像显示

    可视化效果具体是什么意思?小编再网上搜集了相关资料,希望能对大家有所帮助. 可视化效果什么意思-百度知道解释 在网上搜了一下..应该是播放音乐时的效果 下面是一个关于这种效果的介绍 使用 Window ...

  5. 阿里云全球首批MVP张建平专访 - 我对数据有执念

    昨天我们采访了阿里云全球首批MVP傅奎,让我们认识到了一个"可爱""谦虚"的安全大牛. 今天很荣幸给大家介绍另一位阿里云MVP(阿里云MVP计划),数据分析专家 ...

  6. envi栅格TIF数据进行分割_常用水文气象数据读取及其可视化(二进制、HDF5、NetCDF)以GLDAS、MODIS、GSMaP为例...

    " 地学.水文.气象领域的自然科学数据通常以netcdf.hdf.二进制等方式存储,比如温度.降水.蒸发数据等:学会这些数据格式的读取和可视化是进行地学统计分析计算的关键,python提供了 ...

  7. 关于pyecharts可视化中国经济、人口等数据

    首先pyecharts是个可视化的好工具,pyecharts已做了变更目前是1.6.2版本,但工具的灵活运用学习过程还是很痛苦的. 其次通过pandas处理数据集问题,在pandas进行数据清洗转换汇 ...

  8. 数据大屏|基于Flask搭建数据可视化大屏1

    项目概述 本文主要基于Flask,ECharts等,利用疫情数据搭建可视化大屏,供加深印象学习.学习案例来源网上开源项目,这里进行逐一拆分复现. 应用技术:Python,Flask,ECharts,M ...

  9. python数据分析及可视化(九)pandas数据规整(分组聚合、数据透视表、时间序列、数据分析流程)

    作业 拼接多个csv文件 去除重复数据,重新索引 自动挡和手动挡数目 计算每个城市二手车数量 统计每个汽车品牌平均售价价格(不是原价) 分组与聚合 如下表所示,5行3列的表格,5种水果分别对应的名称, ...

最新文章

  1. linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
  2. 利用angular4和nodejs-express构建一个简单的网站(九)—用户登录
  3. 发现自己竟然有点恐高,郁闷
  4. rabitMQ-centos7安装
  5. 面试官问你的缺点是什么,该如何回答?
  6. Dapper的基本使用
  7. Redis的两种持久化介绍与对比
  8. PLC编程软件等工具打包下载1.0【好用绿色三菱plc编程软件】
  9. html阿里矢量图标库,分析Iconfont-阿里巴巴矢量常用图标库
  10. web前端设计与开发作品:旅游酒店网站设计——中国风的温泉酒店预订网站全套html模板(13页) HTML+CSS+JavaScript
  11. 伺服驱动器--增益调整
  12. 关于OSS如何获得直接访问文件的路径,哪位朋友指点一二??感激不尽
  13. .net core mvc中使用ef
  14. FPGA和USB3.0通信-UVC摄像机
  15. 怎样使用计算机网络,手机使用电脑网络怎么操作 手机使用电脑网络操作方法...
  16. 牧羊人和金斧子|不要和产品聊天!
  17. vmware workstation添加共享硬盘的步骤
  18. zbb20180930 Postman 使用方法详解
  19. C语言 实现 最长名字输出
  20. STM32cube HAL库两条命令实现i2c通信---Nucleo L476RG用I2C实现tmp117模块温度读取并串口打印

热门文章

  1. py2exe打包matplotlib
  2. java图片异步加载_使用java concurrent处理异步加载图片功能
  3. 怎么更改计算机用户开机密码,怎么设置电脑开机密码 图文结合一看就会
  4. 计算机设备和打印机打不开,教你win7电脑中的设备和打印机无法打开怎么办
  5. Dimensional Modeling
  6. java/php/net/python高校心理测评系统设计
  7. box–jenkins模型_教程– EMFStore –模型库
  8. python生成二维码代码_python 一行代码生成 二维码
  9. Java--判断语句
  10. HDU 4749 Parade Show(暴力水果)