来自《python编程:从入门到实践》上的实践项目(第17章)
思路:
使用Github中的Web应用编程接口(API)请求python相关的项目的信息,然后用pygal制作svg
代码:
import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS
#让背景变白,默认是黑粉配色
url = 'https://api.github.com/search/repositories?q=language&sort=stars'
r = requests.get(url)
print('Status Code:',r.status_code)
#状态码为200,则请求成功
#request.url获得一个dict,json()将JSON格换为字典格式
response_dict = r.json()
print(response_dict.keys())
projects_dict = response_dict['items']
print ('There are'+' '+str(len(projects_dict))+' '+'projects')
names = []
stars = []
plot_dicts = []
#plot_dict是字典,plot_dicts是列表,其中每一项都是字典
for project_dict in projects_dict:
names.append(project_dict['name'])
plot_dict = {
'value':project_dict['stargazers_count'],
'label':project_dict['description'],
'xlink':project_dict['html_url']
}
plot_dicts.append(plot_dict)
my_style = LS('#123456',base_style=LCS)
my_config = pygal.Config() #设置‘我的配置’
my_config.x_label_rotation = 45 #x轴坐标旋转45度
my_config.label_font_size = 14 #坐标字号
my_config.major_label_font_size = 18 #主坐标字号
my_config.show_y_guides = False #隐藏y轴辅助线
my_config.truncate_label = 15 #项目名称最长显示15个字符(如果将鼠标移到被截断的项目名上,还是会完整显示)
my_config.width = 1000 #自定义宽度
chart = pygal.Bar(my_config,style=my_style,tooltip_border_radius=10)
chart.x_labels = names
chart.add('stars',plot_dicts)
chart.render_to_file('visual.svg')
结果:
加油!继续学习!
o(`ω´ )o