Python练习项目01:Github上最高获星的项目排名的交互可视化

来自《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')
结果:

svg截图
加油!继续学习!
o(`ω´ )o

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值