Python的pyecharts render中,render()路径的问题

python-echarts包安装问题?(已解决)? - 知乎3被浏览703分享邀请回答24 条评论分享收藏感谢收起01 条评论分享收藏感谢收起没有更多推荐了,
不良信息举报
举报内容:
【python 数据可视化】pyecharts的使用
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!python-echarts包安装问题?(已解决)? - 知乎3被浏览703分享邀请回答24 条评论分享收藏感谢收起没有更多推荐了,
不良信息举报
举报内容:
Python Tornado Echarts 之坑一
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!使用python + php + echarts分析nginx访问来源绘制到地图中使用python + php + echarts分析nginx访问来源绘制到地图中喵老师说科技百家号思路,通过python执行shell命令,截取nginx日志第一列,即用户来源ip,写入到mysql中。通过埃文科技的ip地址库,查询ip对应的省份,再写入mysql中。通过echarts绘制到地图中,实现用户来源可视化。第一步:首先创建表结构:CREATE TABLE `access` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`ip` varchar(100) DEFAULT NULL,`count` int(10) DEFAULT NULL,`province` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8第二步:python代码:#!/usr/bin/python#coding=utf-8import osimport mysql.connector# nginx日志路径file_path = "/root/access.log"# ip排序+统计个数并去重data = os.popen("cat access.log | awk '{print$1}' | sort | uniq -c")array_data = {}array_data_value = 0for i in data:i = i.strip()array_data[array_data_value] = i.split(' ')array_data_value = array_data_value + 1# 数据库连接,库名simondb = mysql.connector.connect(host='192.168.10.105', user='root', password='root', database='simon', charset='utf8')cursor = db.cursor(dictionary=True)########################## 插入操作 ##############################for x in array_data:#print array_data[x]try:# 我的表名叫accesscursor.execute("INSERT INTO `access` (`ip`,`count`) VALUES (%s,%s);",(str(array_data[x][1]),str(array_data[x][0])))print "数据id:" + str(cursor.lastrowid)except Exception,e:print "插入失败,错误类型: " + str(Exception) + "错误原因: " + str(e)# 关闭连接cursor.close()db.commit() # 插入数据必用,否则不提交到mysqldb.close()第三步:从 https://mall.ipplus360.com/product/detail?productId=5 下载埃文科技的ip地址库。根据其提供的手册,导入到mysql中。第四步:下载echarts图表 http://echarts.baidu.com/demo.html#map-labels ,我这里通过公司的前端同事协助下载。第五步,更新省份:用php处理数据,之前py插入的数据只有ip,访问次数,没有ip对应的省份。这里我用php处理。方法就是通过埃文科技的地址库,查出来对应省份,再去更新表。由于php框架众多,写法也不太一样,下面的php代码供大家参考。// 查询ip地址$rs = $db -& prepare("SELECT `ip` FROM `access`;") -& execute();// 循环查询ip对应省份foreach ($rs as $v){$location = $db -& prepare("SELECT `multiarea` FROM `aiwen_free_district_v2.0.1` WHERE INET_ATON(:ip) BETWEEN `minip` AND `maxip` LIMIT 0,1;")-& execute(array(':ip'=&$v['ip']));$location = json_decode($location[0]['multiarea'], true);$province = $location[0]['p'] ? $location[0]['p'] : '未知'; // ip地址库不一定能查到ip的省份,为了冗余,查不到的时候赋值为 未知// 更新省份字段$rs = $db -& prepare("UPDATE `access` SET `province` = :province WHERE `ip` = :") -& execute(array(':province'=&$province, ':ip'=&$v['ip']));}第六步,绘制图表:php代码,仅供参考。$db = db::init();$rs = $db -& prepare("SELECT SUM(`count`) AS `count`,`province` FROM `access` WHERE `province` != '未知' AND `province` IS NOT NULL GROUP BY `province`;") -& execute();$list = array();foreach ($rs as $k =& $v)// 这里是因为echarts出来的数据不带“省”“自治区”,所以要去掉,否则图表出不来数据。$list[$k]['count'] = $v['count'];$p = str_replace('省', '', $v['province']);$p = str_replace('自治区', '', $p);$list[$k]['province'] = $p;template::assign('list', $list);template::display('index');然后对html页面赋值。如图。最终效果图:本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。喵老师说科技百家号最近更新:简介:我们战斗到宇宙,探索宇宙的奥秘。作者最新文章相关文章}

我要回帖

更多关于 web.py render 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信