python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

除了从文件加载数据外,另一个数据源是互联网,它每天产生各种不同的数据,可以以多种方式从互联网加载数据。

[En]

In addition to loading data from files, another data source is the Internet, which produces a variety of different data every day and can load data from the Internet in a variety of ways.

一、了解 Web API

Web 应用编程接口(API)自动请求网站的特定信息,再对这些信息进行可视化。每次运行,都会获取最新的数据来生成可视化,因此即便网络上的数据瞬息万变,它呈现的信息也都是最新的。

Web API是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互。这种请求称为API调用。请求的数据将以易于处理的格式(如JSON或CSV)返回。

GitHub(https://github.com/)上的项目都存储在仓库中,后者包含与项目相关联的一切:代码、项目参与者的信息、问题或bug报告等,编写一个自动下载GitHub上的Python项目的相关信息。

在浏览器中打开:https://api.github.com/search/repositories?q=language:python&sort=stars,可以看到如下内容,

python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

此调用返回GitHub当前托管了total_count 8884066个Python项目,还有最受欢迎的Python仓库的信息。

其中第一部分( https://api.github.com/ )将请求发送到GitHub网站中响应API调用的部分;

第二部分( search/repositories )让API搜索GitHub上的所有仓库。

repositories 后面的问号指出我们要传递一个实参。 q 表示查询,而等号让我们能够开始指定
查询( q= )。通过使用 language:python ,我们指出只想获取主要语言为Python的仓库的信息。

最后一部分( &sort=stars )指定将项目按其获得的星级进行排序。

但我们不能每次通过打开网页的形式来获取数据。但可以通过python中相关库

二、安装 requests

requests是一个很实用的Python HTTP客户端库,专门用于发送HTTP请求,方便编程,编写爬虫和测试服务器响应数据时经常会用到,

Requests主要相关参数有:

r.status_code 响应状态码
r.heards 响应头
r.cookies 响应cookies

r.text 响应文本
r. encoding 当前编码
r. content 以字节形式(二进制)返回

鉴于一直都使用的是anaconda3,可直接打开 anaconda prompt,然后输入命令:pip install –user requests 安装即可。

下面来编写一个程序,执行API调用并处理结果,找出GitHub上星级最高的Python项目,代码如下:

import requests   # 导入模块requests

url='https://api.github.com/search/repositories?q=language:python&sort=stars'#存储API调用的URL
r = requests.get(url)  # 调用get()并将URL传递给它,响应对象存储在变量 r中
print("Status code:",r.status_code) #包含一个名为status_code的属性
response_dict = r.json()   # 使用方法json()将这些信息转换为一个Python字典
print(response_dict.keys())  #打印出字典的key

上述代码分两行打印,运行结果如下:

[En]

The above code is printed on two lines, and the running result is as follows:

csharp;gutter:true; Status code: 200 dict_keys(['total_count', 'incomplete_results', 'items'])</p> <pre><code> 状态码为200,请求成功。响应字典包含三个键: 'total_count'和 'incomplete_results'和 'items' 将API调用返回的信息存储到字典中,就可以利用前面了解的字典的键-值对来研究自己喜欢的信息了。 三、整理字典中的信息 上述代码response_dict = r.json()实际上已将请求信息转为字典,那查看一下字典里有些什么内容。 从浏览器中打开的内容可以看到,返回的内容是词典包含词典。<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>From the content opened in the browser, you can see that the returned content is that the dictionary contains the dictionary.</font>*</details> (items是作为最上那个大括号中的key,对应的值,是由多个字典组成的字典列表,'id','node_id','name'等也是items列表中第一子字典的key,见红色方框部分,列表字典等相互嵌套,好好分析一下)。 1)先看一下与 'total_count'关联的值 </code></pre> <p>print("Total repositories:", response_dict['total_count'])</p> <pre><code> 2)items本身是一个字典,'id','node_id','name'等均是key,后面对应的都是值,可以查一下有多少个key </code></pre> <p>repo_dicts = response_dict['items'] #建一个变量字典repo_dicts,将items字典列表存储在 repo_dicts print("Repositories returned:", len(repo_dicts))# 打 repo_dicts的长度,获得item字典的长度信息</p> <pre><code> 3)查看第一个item的详细信息,并打印出所有key </code></pre> <p>repo_dict = repo_dicts[0] #提取了repo_dicts中的第一个字典 print("\nKeys:", len(repo_dict)) #打印这个字典包含的键数 print("\n") for key in repo_dict.keys():#打印这个字典的所有键 print(key)</p> <pre><code> 整体运行结果(下面图片的白色部分由浏览器打开):<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>The overall running result (the white part of the image below is opened by the browser):</font>*</details> ![python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230523/2826255-20220430104730418-1100426298.png) 思考一下,为什么图中的Total repositories一个是9037884,另一个为9145790,两者不一致? 有了key,就很容易查询到相关的值了(当然这里都是字符串,如果是数字型的就能可视化) 四,数字可视化 通过浏览器打开页面,会发现"forks": 32471, "open_issues": 305, "watchers": 177777等有相关数据,于是,可以通过对应的key,将相关数据整合成一个数据列表,然后显示出来,比如可视化wathers </code></pre> <p>count=0 watchers, counts= [], [] for repo_dict in repo_dicts: watchers.append(repo_dict['watchers']) count += 1 counts.append(count)</p> <p>plt.bar(counts,watchers, label="watchers", color='#ff2204') plt.legend() plt.show()

运行结果:

python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

第五,数据可视化小结:

[En]

Fifth, a small summary of data visualization:

matplotlib中数据可视化的方法主要就是调用pyplot接口,再直接调用对象的建立方法,在方法中对该对象进行相应的属性设置,所以掌握这种方法的核心就在于掌握每种对象的建立方法和具体参数设置。Python数据可视化的难处在于掌握参数的设置,内置的参数虽然很多,但一般都用不上(可以留着慢慢钻研),将用得上的参数和参数值几何整理下来,做到这样,对于Python的可视化学习暂时足矣。剩下的时间该去学习其他更为有用的!

简而化之,

曲线图 plt.plot(squares, linewidth=5) 只需要提供一组数据即可
散点图 plt.scatter(x, y,c=’r’,edgecolor=’none’,s=100) ,x,y分别为x轴,y轴坐标位置,x,y对应
柱图 plt.bar(x,y, label=”Test one”, color=’r’) x为x轴位置,y为值,x如为数列,则y对应相同长度
柱图 plt.hist(list, bins, histtype=’bar’, rwidth=0.8,color=’r’) bins为柱图划分范围,表现在x轴上,list为数列,显示在y 轴
饼图 plt.pie(slices) slices 为一数列
堆叠图 plt.stackplot(days, times,labels=labellist,colors=colorlist) days为一维数列,times为一维或多维数列,每一维数列元素个数与days一样。

Original: https://www.cnblogs.com/codingchen/p/16205862.html
Author: PursuitingPeak
Title: python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499698/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 帮忙看一下,救救我

    子弹碰到飞机不会爆炸 代码: import pygame as paimport timeimport sysimport randomCREAT_ENEMY_EVENT=pa.U…

    Python 2023年9月23日
    048
  • Numpy库速通教程典藏版 #一篇就够了系列

    Numpy库速通教程典藏版 #一篇就够了系列 一文带你拿下numpy 文章目录 1. 创建数组 * 1.1 通过 array( object ) 创建 – 1.1.1 …

    Python 2023年8月23日
    061
  • 设计模式之(9)——适配器模式

    定义:适配器模式是将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作,在软件设计中我们需要将一些”现存的对象&#8…

    Python 2023年10月23日
    027
  • 猿创征文|深度学习基于ResNet18网络完成图像分类

    一.前言 本次任务是利用ResNet18网络实践更通用的图像分类任务。 ResNet系列网络,图像分类领域的知名算法,经久不衰,历久弥新,直到今天依旧具有广泛的研究意义和应用场景。…

    Python 2023年10月11日
    076
  • Python Pygame 实现宝可梦对战场面

    宝可梦游戏是小时候最喜欢的掌机游戏之一,印象最深刻的是宝可梦(黄)、宝可梦(金、银)还有红蓝宝石。游戏的设计很出色,画面精致,可以说是是掌机时代的代表了。 本篇文章使用Pygame…

    Python 2023年9月18日
    083
  • Numpy

    Numpy 1.numpy简介 ①Numpy是一个科学计算库,用于快速处理任意维度的数组 ②支持常见的数组和矩阵操作 ③有一个强大的数组ndarray ④广播功能函数 ⑤线性代数、…

    Python 2023年8月27日
    056
  • python3.6怎么安装pygame_#Python3.6.2(32位) pip安装 和 pygame 环境配置

    首先确认电脑已经安装python ,可通过在命令行下 执行 python –version确认。 到 https://pypi.python.org/pypi/setu…

    Python 2023年9月24日
    049
  • pytest(二):fixtrue之conftest.py,allure报告详解

    一、使用fixture实现部分前后置 语法: @pytest.fixture(scope="作用域",params="数据驱动",autou…

    Python 2023年9月10日
    041
  • Matplotlib 入门(一)

    一、Matplotlib是什么 Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。Matplotlib 可以用来绘制各种…

    Python 2023年9月1日
    043
  • Mindspore-训练模型

    前言 MindSpore:新一代AI开源计算框架。 创新编程范式,AI科学家和工程师更易使用,便于开放式创新 ;该计算框架可满足终端、边缘计算、云全场景需求,能更好保护数据隐私 ;…

    Python 2023年9月30日
    036
  • 类类型

    public private protected 1.默认是private。 2.类里面的函数可以调用private的东西,在外界不能直接调用private的 而且先得定义一个Cn…

    Python 2023年6月12日
    069
  • Python!使用机器学习预测2022世界杯

    使用机器学习预测2022世界杯 文章目录 使用机器学习预测2022世界杯 * 项目说明 数据集说明 – 1872年至2022年国际足球成绩 国际足联世界排名1992-2…

    Python 2023年9月30日
    040
  • flask部署阿里云服务器,公网ip访问不了(一些问题及解答)

    flask部署阿里云服务器,公网ip访问不了(新手踩坑之路) 好朋友,你是不是一个后端初学者?相信到目前为止,你已经拥有一定的后端基础,在发现单机本地的后端开发已经无法满足你,于是…

    Python 2023年8月9日
    097
  • Python可视化–条形图

    前言 本文的所使用文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我以作处理。 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据…

    Python 2023年9月2日
    051
  • 量化投资里的风险收益分析与可视化:empyrical和pyfolio实战,与backtrader整合

    原创文章第75篇,专注”个人成长与财富自由、世界运作的逻辑, AI量化投资”。 今天来说说 量化投资里的风险、收益分析。 一个策略好与不好,与基准如何对比,…

    Python 2023年8月28日
    064
  • 人工智能与机器学习

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、…

    Python 2023年9月27日
    043
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球