您的位置:首页 > 编程语言

Pygal可视化github项目信息

2018-03-28 12:41 281 查看
上节我们提取了github中所有Python项目的信息 ,接下来就可以可视化了
现在我们可以使用上节API调用获得的数据了,现在我们来可视化
呈现GitHub上Python项目的受欢迎程度。我们创建一个交互式条形图: 条形的高度

表示项目获得了多少颗星。单击条形将进入对应项目Github上的主页

import requests
import sys
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS

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

r = requests.get(url)
# 返回状态码 这里推荐一本好书图解http,最近正准备复习一下这本书
print("Status Code: ", r.status_code)

# 将API响应存储到一个变量中
response_dict = r.json()

#print(response_dict.keys())
print("Toal repositories:", response_dict['total_count'])

# 查找有关仓库的信息 repo_dicts是一个列表,元素都是每个项目的信息字典
repo_dicts = response_dict['items']

names, starts = [], []
for repo_dict in repo_dicts:
names.append(repo_dict['name'])
starts.append(repo_dict['stargazers_count'])

# 可视化 基色为深蓝色
my_style = LS('#333366', base_style = LCS)

# 创建一个配置对象
my_config = pygal.Config()
my_config.x_label_rotation = 45
my_config.show_legend = False
# 图标标题字体大小 父标签和主标签的字体大小
my_config.title_font_size = 24
my_config.label_font_size = 14
my_config.major_label_font_size = 18
# 将较长的项目名缩短为15个字符,鼠标指向屏幕上项目会自动显示完整名称
my_config.truncate_label = 15
# 隐藏图标中的水平线
#my_config.show_y_guides = False
my_config.width = 1000

# 创建条形图 x标签绕x轴旋转45度 show_legend是隐藏了图例也就是最左边的小方块
#chart = pygal.Bar(style = my_style, x_label_rotation = 45, show_legend = False)
chart = pygal.Bar(my_config, style = my_style)

chart.title = 'Most-Starred Python projects on Github'
chart.x_labels = names

# 不需要给这个数据添加数据标签,因此将标签设置成空字符串
chart.add('', starts)
chart.render_to_file('python_repos.svg')运行结果



在Pygal中,将鼠标指向条形将显示它表示的信息,这通常称为工具提示。在这个示例中,
当前显示的是项目获得了多少个星。下面来创建一个自定义工具提示,以同时显示项目的描述

来看一个简单的实例,它可视化三个项目,并给每个项目对应的条形都指定自定义标签.import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS

my_style = LS('#333366', base_style = LCS)
chart = pygal.Bar(style = my_style, x_label_rotation = 45, show_lendeng = False)

chart.title = 'Python Projects'
chart.x_labels = ['httpie', 'django', 'flask']

'''
定义一个plot_dicts列表,其中包含三个字典,分别针对项目httpie,django,flask.每个字典
都包含两个键: 'value'和'label' Pygal根据与键'value'相关联的数字来确定条形的高度
并使用与'label'相关联的字符串给条形创建工具提示。
'''
plot_dicts = [
{'value' : 16101, 'label' : 'Description of httpie.'},
{'value' : 15028, 'label' : 'Description of django.'},
{'value' : 14798, 'label' : 'description of flask'},
]

# add()方法接受一个字符串和一个列表
chart.add('', plot_dicts)
#图中指向一个条形图,看到除了默认工具提示(星星数, 还显示了我们传入的自定义提示)
chart.render_to_file('bar_descriptions.svg')可以看到点击条形图可以看到项目名、项目描述信息和星星数量



接下来我们向add()方法中传入我们自定义的提示
Pygal允许你将图标中的每个条形用作网站的链接,点击条形就会跳转到相应的项目页面。在每个项目创建的字典中,添加一个键为'xlink'的键值对就可以了



点击条形图就会跳转到github对应的页面,这对于许多找开源项目的人来说非常的方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息