数据可视化学习:使用API

刚学习数据可视化,还有很多相应的包的使用不是很熟悉.希望大家一起学习,一起提高自己。

这里使用了 Pygal包 来进行可视化。还有一个很流行的工具是 matplotlib。Pygal包专注于生成适合在数字设备上显示的图表。可在用户与图表交互时突出元素以及调整其大小,还可以调整整个图表的尺寸,使图表适合在手机或者比较大的显示屏幕上显示。

在这里,将编写一个程序,它自动下载Github上星级(star)最高的Python项目的信息,并对这些信息进行可视化。

1. 获取星级最高的python项目信息

我们通过调用Github的API来请求获取需要的各种信息。这下面的URL就是API调用。(copy这条url到浏览器的地址栏中,并回车)

https://api.github.com/search/repositories?q=language:python&sort=stars

这个API分成4部分:

  1. https://api.github.com/ 将请求发送到Github网站中响应API调用的部分。
  2. search/repositories 让API 搜索Github上所有的仓库。
  3. ?q= 中的 号指出我们需要给这个API传入一个实参。q表示查询,而=让我们能够开始指定查询。
  4. language:python&sort=stars 这就是我们需要查询的内容了( language:python)和指定我们按星级进行排序的条件了(&sort=stars),这条件应该像数据库查询中的 WHERE吧。

这下面是是代码:

import requests


url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
# 执行API调用,并将响应的对象存储在变量r中
r = requests.get(url)
# requests对象含有属性状态码statues_code
# 如果API调用请求成功,状态码为200
print('request status code:' + str(r.status_code))

# 提取需要的数据
# 获取的数据为json格式,需要转化为字典形式数据
response_data = r.json()
print('total_count:'+str(response_data['total_count']))
response_datas = response_data['items']

# 将需要可视化的数据存储在names和stars列表中
names, stars = [],[]
for respo_data in response_datas:
    names.append(respo_data['name'])
    stars.append(respo_data['stargazers_count'])

2. 使用Pygal可视化

有了需要的数据后,我们就可以进行可视化了,呈现出Github上Python项目的受欢迎程度。这里,创建一个可交互的条形图:条形的高度表示项目获得了多少个star。

import requests
import pygal

-- 这里省略了第一步骤的代码 --

# 数据可视化    
bar_chart = pygal.Bar(x_label_rotation=45)     # x_label_rotation是让标签以45°斜角显示
bar_chart.title = 'Github上最多星的Python项目'   # 直方图的标题
bar_chart.x_labels = names                     # 直方图x轴的各分组名字

bar_chart.add('', stars)
bar_chart.render_to_file('python_repo.svg')

bar_chart.add('', stars) 中,第一参数是需要我们添加的标签参数。这里我们不需要给这个数据系列添加标签,所以在添加数据时,将标签的设置成立空字符串。

在该python文件中,使用浏览器打开 python_repo.svg文件,结果如下:

这里写图片描述

福利:XX-net 是一个特别好用的翻墙插件哦!!可以去github上看看,有教程。

猜你喜欢

转载自blog.csdn.net/qq_24805141/article/details/76912346