来源:《Python编程:从入门到实践》

文章目录

  • 2 使用Pygal可视化仓库
    • 2.1 改进Pygal图表
    • 2.2 添加自定义工具提示
    • 2.3 根据数据绘图
    • 2.4 在图表中添加可单击的链接

2 使用Pygal可视化仓库

  • 上个部分获得有趣的数据后,现在来进行可视化,呈现GitHub上Python项目的受欢迎程度
  • 我们将创建一个交互式条形图:条形的高度表示项目获得了多少颗星
  • 单机条形将进入项目在GitHub上的主页

python_repos.py

import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS# 执行API调用并存储响应
URL = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
r = requests.get(URL)
print("Status code:", r.status_code)# 将API响应存储在一个变量中
response_dict = r.json()
print("Total repositories:", response_dict['total_count'])# 探索有关仓库的信息
repo_dicts = response_dict['items']names, stars = [], []
for repo_dict in repo_dicts:names.append(repo_dict['name'])stars.append(repo_dict['stargazers_count'])# 可视化
my_style = LS('#333366', base_style=LCS)
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_legend=False)
chart.title = 'Most-Starred Python Projects on GitHub'
chart.x_labels = nameschart.add('', stars)
chart.render_to_file('python_repos.svg')
  1. 导入pygal以及要应用于图表的Pygal样式
  2. 创建两个空列表,用于存储将包含在图表中的信息
  3. 使用LightenStyle类(别名LS)定义一种样式,并将其基色设置为深蓝色;还传递了实参base_style,已使用LightColorizedStyle类(别名LCS)
  4. 使用Bar()创建一个简单的条形图,并向它传递了my_style;还传递了两个样式实参:让标签绕x轴旋转45度(x_label_rotation=45),并隐藏了图例(show_legend=False)

2.1 改进Pygal图表

  • 将进行多个方面的定制,因此先来稍微调整代码的结构,创建一个配置对象,在其中包含要传递给Bar()的所有定制:

python_repos.py

--snip--
# 可视化
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
my_config.truncate_label = 15
my_config.show_y_guides = False
my_config.width = 1000chart = pygal.Bar(my_config, style=my_style)
chart.title = 'Most-Starred Python Projects on GitHub'
chart.x_labels = nameschart.add('', stars)
chart.render_to_file('python_repos.svg')
  • 我们创建了一个Pygal类Config实例,命名为my_config
  • 在这个图表中,副标签是x轴上的项目名&y轴上的大部分数字
  • 主标签是y轴上为5000整数倍的刻度;这些刻度应更大,以与副标签区分开
  • truncate_label将较长的项目名缩短为15个字符(如果将鼠标指向被截短的项目名,将显示完整的项目名)
  • show_y_guides=False以隐藏图表中的水平线
  • 最后自定义了宽度,让图表更充分地利用浏览器地可用空间

2.2 添加自定义工具提示

  • 在Pygal中,将鼠标指向条形将显示它表示地信息,这通常称为 工具提示
  • 这个实例中,当前显示的是项目获得了多少颗星
  • 项目来创建一个自定义工具提示,以同时显示项目的描述
  • 下面看一个简单的示例,它可视化前三个项目,并给每个项目对应的条形都指定自定义标签
  • 为此,向add()传递一个字典列表,而不是值列表:

bar_descriptions.py

import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LSmy_style = LS('#333366', base_style=LCS)
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_legend=False)chart.title = 'Python Projects'
chart.x_labels = ['awesome-python', 'system-design-primer', 'public-apis']plot_dicts = [{'value': 72145, 'label': 'Description of awesome-python'},{'value': 71890, 'label': 'Description of system-design-primer'},{'value': 60522, 'label': 'Description of public-apis'},]chart.add('', plot_dicts)
chart.render_to_file('bar_descriptions.svg')

  • 定义了一个名为plot_dicts的列表,其中包含三个字典,分别针对三个项目
  • 每个字典包含两个键:‘value’和’label’
  • Pygal根据与键’value’相关联的数字来确定条形的高度
  • Pygal根据与键’label’相关联的字符串给条形创建工具提示
  • 上图显示了一个工具提示:除默认工具提示(获得star数量)外,Pygal还显示了刚传入的自定义提示

2.3 根据数据绘图

python_repos.py

--snip--
# 探索有关仓库的信息
repo_dicts = response_dict['items']names, plot_dicts = [], []
for repo_dict in repo_dicts:names.append(repo_dict['name'])plot_dict = {'value': repo_dict['stargazers_count'],'label': repo_dict['description'],}plot_dicts.append(plot_dict)# 可视化
my_style = LS('#333366', base_style=LCS)
--snip--chart.add('', plot_dicts)
chart.render_to_file('python_repos.svg')

2.4 在图表中添加可单击的链接

  • 在为每个项目创建的字典中,只需添加一个键为’xlink’的键-值对

python_repos.py

--snip--
names, plot_dicts = [], []
for repo_dict in repo_dicts:names.append(repo_dict['name'])plot_dict = {'value': repo_dict['stargazers_count'],'label': repo_dict['description'],'xlink': repo_dict['html_url'],}plot_dicts.append(plot_dict)
--snip--
  • Pygal根据与键’xlink’相关联的URL将每个条形都转换为活跃的链接
  • 至此,对API获取的数据进行了可视化,它是交互性的,包含丰富的信息!

Python:使用API——使用Pygal可视化仓库相关推荐

  1. python——使用API

    文章目录 使用API 1. 使用Web API 1.1 使用API调用请求数据 1.2 安装requests 1.3 处理API响应 1.4 处理响应字典 1.5 概述最受欢迎的仓库 1.6 监视AP ...

  2. Python使用Pygal可视化GitHub仓库排名

    获取GitHub数据方式 要想从网络获取数据,就要使用Web API,通过它可以使用非常具体的URL请求特定信息. 返回的信息通常是JSON或CSV格式,使用Python能够很方便地处理它们. 本节, ...

  3. wxpython dataview处理大量数据_38个常用Python库:数值计算、可视化、机器学习等8大领域都有了...

    作者 | 李明江 张良均 周东平 张尚佳 来源 | 大数据DT 原文 | 38个常用Python库:数值计算.可视化.机器学习等8大领域都有了 Python作为一个设计优秀的程序语言,现在已广泛应用于 ...

  4. Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略

    Python语言学习之图表可视化:python语言中可视化工具包的简介.安装.使用方法.经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 pytho ...

  5. python的api是什么意思_python中api的使用方法是什么

    python中api的使用方法是什么 发布时间:2020-07-31 13:48:21 来源:亿速云 阅读:77 作者:清晨 小编给大家分享一下python中api的使用方法是什么,希望大家阅读完这篇 ...

  6. 用Python创建漂亮的交互式可视化效果

    Plotly is an interactive Python library that provides a wide range of visualisations accessible thro ...

  7. [转载] Python 天气 简单 数据分析及可视化

    参考链接: 使用Python Pandas进行数据分析和可视化 Python 天气情况数据分析及可视化 环境配置 Pycharm开发环境 python 版本 python3.7 Anconda 集成开 ...

  8. Python爬取豆瓣+数据可视化

    博客原文和源码下载:Python爬取豆瓣+数据可视化 前言 前段时间应我姐邀请,看了一下Python爬虫.不得不说Python的语法确实简洁优美,可读性强,比较接近自然语言,非常适合编程的初学者上手. ...

  9. 如何用 Python 和 API 收集与分析网络数据?

    摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...

最新文章

  1. TSM备份Windows数据
  2. 死磕 java集合之TreeMap源码分析(二)- 内含红黑树分析全过程
  3. emacs Linux Java编程环境_Linux下搭建用emacs查看代码的开发环境
  4. 2021夏季每日一题 【week1 未完结】
  5. JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
  6. GBin1分享的10个吸引眼球的jQuery插件
  7. 硬核干货:如果样本量不一一样多,或者不是一一对应关系,如何做差异?相关?...
  8. 【TensorFlow系列一】TensorFlow工作原理
  9. 简单人物画像_天天谈【用户画像】95%的人根本不知道自己在说什么
  10. 2021-2025年中国催产药行业市场供需与战略研究报告
  11. 不受支持的SQL类型1111
  12. datagrip 自动展示库名_DataGrip 2018.1.4 功能强大的多引擎数据库管理工具
  13. 传智播客大型人才招聘会成功举行
  14. Excel常用技巧(三)——函数
  15. Java——求解一元n次方程(V1.0)
  16. Android(一)
  17. c++ IP地址离线查询
  18. iOS WIFI 相关
  19. ffmpeg 常用命令行 (视频-转码)
  20. vivo 调用链 Agent 原理及实践

热门文章

  1. java set驱虫_由分子轨道理论可知, H 2 + 的键级为 0.5 ,并具有顺磁性_学小易找答案...
  2. mysql日期类型计算机_2014年计算机二级考试MySQL试题 1
  3. html转m3u8地址,[转]m3u8直播测试地址
  4. 微软Skype开始采用全新图标 淘汰云朵图案
  5. ThinkPHP 笔记
  6. Python3飞机大战全代码(亲测OJBK)
  7. 树莓派基于ffmpeg+阿里云流媒体服务器实现视频直播
  8. mp4封装格式各box类型讲解及IBP帧计算
  9. Linux窗口和Win命令窗口查看mysql bit类型的值
  10. react脚手架创建命令教程