下载CSV格式数据,进行可视化

csv.reader()创建一个与文件有关联的阅读器(reader)对象,reader处理文件中的第一行数据,并将每一项数据都存储在列表中
head_row = next(reader) 返回文件的下一行,CSV文件第一行为头文件
datetime.strptime(row[0], '%Y-%m-%d-%H-%M-%S') 将字符串'2018-2-15-13-35-1'转换为一个表示日期时间的对象
plt.text() 给图表添加注释,其中%.nf其中n表示显示小数后面几位,%b表示只标注y
plt.annotate() 参数xytext表示偏移距离,%b表示只标注y
fill_between()接受一个x值系列和两个Y值系列,并填充两个y值系列之间的空间,参数alpha值代表颜色透明度,默认1      参数facecolor代表填充颜色
from datetime import datetime
import matplotlib.pyplot as plt
import csv
import numpy as np
with open('csv_file\photo.csv') as f_obj:reader = csv.reader(f_obj)dates,heights_1,heights_2 = [],[],[]for row in reader:try:height_1 = float(row[3])#将字符串转换为浮点型height_2 = float(row[4])# 将字符串'2018-2-15-13-35-1'转换为一个表示日期时间的对象date = datetime.strptime(row[0], '%Y-%m-%d-%H-%M-%S')except ValueError: #如果有哪一天的数据缺失,打印缺失日期print(date,'missing data.')else:# 将所有高程插入列表
            dates.append(date)heights_1.append(height_1)heights_2.append(height_2)
fig = plt.figure(figsize=(12,8))
plt.tick_params(axis='both',labelsize=14)
#为防止x轴标签重叠,让日期型的x轴标签自动展现
fig.autofmt_xdate(rotation=45)
#在同一个窗口中绘制两条折线
x = np.array(dates)
y = np.array(heights_1)
for a,b in zip(x,y):#用text()标注,%.nf其中n表示显示小数后面几位,%b表示只标注yplt.text(a,b+0.1,'%.2f'%b,ha = 'center',va = 'bottom',fontsize=8)#用annotate()标注,xytext表示偏移距离,%b表示只标注y#plt.annotate('%s'%b,xy=(a,b),xytext=(-20,10),#textcoords='offset points',fontsize=8)
plt.plot(dates,heights_1,linewidth=3,c='c')
x = np.array(dates)
y = np.array(heights_2)
for a,b in zip(x,y):plt.text(a, b + 0.1, '%.2f' % b, ha='center', va='bottom',fontsize=8)
plt.plot(dates,heights_2,linewidth=3,c='red')
#fill_between()接受一个x值系列和两个Y值系列,并填充两个y值系列之间的空间
plt.fill_between(dates,heights_1,heights_2,facecolor='greenyellow',alpha=0.3)#alpha值代表颜色透明度,默认1
plt.show()

下载JSON格式文件可视化 

import json --读取,写入json文件

from pygal.style import RotateStyle,LightColorizedStyle,LightenStyle --定义地图样式

import pygal_maps_world.maps (import pygal.maps.world也可以)

from pygal_maps_world.i18n import COUNTRIES -- 获取两位国别码和国家名

wm=pygal_maps_world.maps.World() --定义一个世界地图实例

南北美洲所有国家的国别码:
wm.add('North America',['ca','mx','us'])
wm.add('Central America',['bz','cr','gt','hn','ni','pa','sv'])
wm.add('South America',['ar','bo','br','cl','co','ec','gf',
            'gy','pe','py','sr','uy','ve'])

Pygal样式保存在模块style中:
RotateStyle:修改风格(通过调整指定颜色创建样式)
LightenStyle:轻盈风格(通过赋予特定的色彩来营造风格)
DarkenStyle:黑暗风格(通过使给定颜色变暗创建样式)
SaturateStyle:饱和风格(通过饱和给定颜色创建样式)
DesaturateStyle:去饱和风格(通过淡化给定颜色创建样式)
LightColorizedStyle:加亮颜色(通过加亮给定颜色创建样式)

RotateStyle('#336699')给三个分组调整颜色,十六进制的RGB颜色是一个以#开头的
字符串,后面6个字符分别表示红绿蓝三个颜色占的分量;hex color chooser-十六进制
颜色选择器;LightColorizedStyle 此类可单独使用,加亮地图颜色(包括整个图表的主题)
同时也可以放在RotateStyl()函数中传给实参base_style

import json
from pygal.style import RotateStyle,LightColorizedStyle
#import pygal.maps.world
import pygal_maps_world.maps
from pygal_maps_world.i18n import COUNTRIES
#定义一个获取两位国别码的函数
def get_country_code(country_name):for code,name in COUNTRIES.items():if name == country_name:return codereturn None
filename = 'json_file\population_data.json'
with open(filename) as f:#将文件中的字典存储到列表中pop_data = json.load(f)
#将每个国家2010年的人口数据加入字典
cc_populations = {}
for pop_dict in pop_data:if pop_dict['Year'] == '2010':country_name = pop_dict["Country Name"]population = int(float(pop_dict['Value']))code = get_country_code(country_name)if code:cc_populations[code] = population#print(code + ':' + str(population))else:print( 'Error - ' + country_name)
#将世界人口数量等级分为三组
cc_pops_1,cc_pops_2,cc_pops_3 = {},{},{}
for cc,pop in cc_populations.items():if pop < 10000000:cc_pops_1[cc] = popelif pop < 1000000000:cc_pops_2[cc] = popelse:cc_pops_3[cc] = pop
#看看每组有多少个国家
print(len(cc_populations),len(cc_pops_1),len(cc_pops_2),len(cc_pops_3))
wm_style = RotateStyle('#336699',base_style=LightColorizedStyle)
#wm = pygal.maps.world.World()
wm = pygal_maps_world.maps.World(style=wm_style)
wm.title = 'World Population in 2010,by Country'
wm.add('0-10m',cc_pops_1)
wm.add('10m-1bn',cc_pops_2)
wm.add('>1bn',cc_pops_3)
wm.render_to_file('images\world_population.svg')

转载于:https://www.cnblogs.com/charliedaifu/p/9975735.html

数据可视化:CSV格式,JSON格式相关推荐

  1. python向kafka发送json数据_python3实现从kafka获取数据,并解析为json格式,写入到mysql中...

    项目需求:将kafka解析来的日志获取到数据库的变更记录,按照订单的级别和订单明细级别写入数据库,一条订单的所有信息包括各种维度信息均保存在一条json中,写入mysql5.7中. 配置信息: [Gl ...

  2. 把videos对应标签的.avi文件转为kinetics400的格式,其中所包含的格式有.csv和.json格式

    实现功能 把videos对应标签的.avi文件转为kinetics400的格式,其中所包含的格式有.csv和.json格式 https://github.com/yanyide123/kinetics ...

  3. php导出excel数据使用csv替代xls格式

    为什么80%的码农都做不了架构师?>>>    php导出excel数据使用csv替代xls格式 一直以来需要将某些后台数据导出来以供运营人员查看,因为他们都用excel.所以最初的 ...

  4. Python项目实践之二:下载数据(CSV和JSON )

    Python项目实践之二:下载数据(CSV和JSON ) 下载数据的可视化着重点在于从网上下载数据进行分析后,进行可视化处理,网上的数据格式多的难以置信,且大多未经过仔细检查,如果能够对这些数据进行分 ...

  5. abap数据类型转换_ABAP 中JSON格式的转换与解析

    正文 RT,JSON是当今十分流行的一种轻量数据格式,广泛地应用于各种数据交换场景中.本文会介绍一种比较简单的将ABAP中的数据转换为JSON格式的方法. (如果你是因为引号的问题搜索到了这篇文章,请 ...

  6. RS485电表无线集中采集器电表数据解析MQTT协议json格式

    无线电表集中器抄表器通过RS485接口采集SPM32电表,MQTT协议上报数据,软件协议解析json格式如下 {"Ic": 47.354,"Ib": 0,&qu ...

  7. php json数据值,php操作JSON格式数据

    知识点: 1.JSON数据格式介绍 2.对数据编码成JSON格式 3.对JSON数据进行解码,并操作 JSON数据格式表示方式如下: { "programmers": [ { &q ...

  8. html如何查看json数据,浏览器如何查看json格式的数据?查看方法分享

    用户在使用浏览器的时候不仅仅只是搜索自己想要的内容,在项目开发的时候就需要用户查看更多接口的数据,查看的数据就会比较乱,用户可以使用手机在平台上快速使用,马上就可以帮助用户想要的数据,那么要如何才能查 ...

  9. 通达信日线数据转换为csv和excel格式

    freepy下载 主要功能: 通达信日线数据转换为csv格式和Excel格式数据. 可指定转换的股票数量. 分别转换沪市和深市股票. 注意: 1.修改代码中本机通达信文件夹. 2.指定转换的股票数量越 ...

  10. SpringMVC的数据响应-回写数据-直接回写json格式字符串(应用)

    @RequestMapping(value="/quick8") @ResponseBody public String save8() throws IOException {r ...

最新文章

  1. 活动报名 | 智源重大研究方向“人工智能的认知神经基础”发布会
  2. linux中mtools工具_Linux mtools命令
  3. 常见的原生javascript DOM操作
  4. 发那科2021参数_三菱发那科常用参数对照
  5. Colder框架硬核更新(Sharding+IOC)
  6. 文案月薪3w?月薪10w的设计大神笑而不语
  7. mysql 触发器 sql日志_触发器实现记录操作表的日志
  8. 使用Android Studio开发widget安卓桌面插件
  9. 注册页面案例-世纪佳缘
  10. 2015.2,对任意正整数n,求xn,要求运算时间复杂度为o(logn).例如x30=x15*x15.
  11. 我的生活(小兵,班长,连长....大将)
  12. sql语句操作(2)
  13. 转型AI ,80后华为Java工程师的故事
  14. vmware中无法检测网卡的解决办法
  15. 华为手机linux连接网络设置ip地址,华为手机怎么看网络IP地址?华为手机查看网络IP地址两种方法...
  16. Linux下的时间详解【转】
  17. c++ 抓取桌面屏幕并转为jpg图片
  18. nextcloud配置mysql_nextcloud的安装配置
  19. 若人工智能研发是登山,我们都经历了什么
  20. EDIUS 8中如何快速打开特效面板

热门文章

  1. 2015 ICCV论文《Joint Fine-Tuning in Deep Neural Networks for Facial Expression Recognition》
  2. 贪心 穷举 动态规划 区别
  3. String.valueOf()方法的使用总结
  4. jquery ajax修改密码,提交form表单---修改密码 ajax、jQuery
  5. linux+git登陆,图解如何在Linux上配置git自动登陆验证
  6. shiro ajax请求拦截器,shiro 拦截器实现session过期拦截ajax请求的处理
  7. Java NIO和IO的区别
  8. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_14-页面静态化-数据模型-远程请求接口...
  9. 小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析
  10. spring较为常用注解