-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpython_repos_3.py
72 lines (56 loc) · 2.41 KB
/
python_repos_3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!python2
# coding: utf-8
import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS, Style
# 执行API调用并存储响应
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
r = requests.get(url)
# print dir(r)
print("Status code:", r.status_code)
# 将api响应存储在一个变量中
response_dict = r.json()
print("Total repositories:", response_dict['total_count'])
# 探索有关仓库的信息,反馈一个列表
repo_dicts = response_dict['items']
names, plot_dicts = [], []
for repo_dict in repo_dicts:
names.append(repo_dict['name'])
if repo_dict['description'] is None:
plot_dict = {
'value': repo_dict['stargazers_count'],
'label': 'No Description',
}
plot_dicts.append(plot_dict)
else:
plot_dict = {
'value': repo_dict['stargazers_count'], # 图像块上的值
'label': repo_dict['description'], # 显示的文本
'xlink': repo_dict['html_url'] # 块的超链接
}
plot_dicts.append(plot_dict)
# 可视化
my_style = Style()
my_style = LS('#333366', base_style=LCS)
my_style.title_font_size = 12 # 标题大小
my_style.label_font_size = 8 # 标签大小
my_style.major_label_font_size = 10 # 主要标签字体大小
my_style.tooltip_font_size = 10 # 提示工具的大小
# my_style.value_font_size = 5
my_config = pygal.Config()
my_config.x_label_rotation = 45 # 绕x轴旋转45度
my_config.show_legend = False # 不显示图例
my_config.truncate_label = 12 # 截断(鼠标悬浮显示全部名称) 15个字符, -1: 不截断
my_config.show_y_guides = True # 不显示y轴水平说明
my_config.width = 1000 # 宽度, 更适配浏览器
chart = pygal.Bar(my_config, style=my_style)
chart.title = 'Most-Starred Python Projects on GitHub'
chart.x_labels = names
chart.add('', plot_dicts)
chart.render_to_file('python_repos.svg')
# chart = pygal.Bar(print_values=True, style=DefaultStyle(
# value_font_family='googlefont:Raleway',
# value_font_size=10,
# value_colors=('white',)))
# chart.add('line', [0, 12, 31, 8, -28, 0])
# chart.render_to_file('python_repos.svg')