数据可视化训练第7天(json文件读取国家人口数据,找出前10和后10)

server/2024/10/20 5:20:54/

数据

https://restcountries.com/v3.1/all;建议下载下来,并不是很大

import numpy as np
import matplotlib.pyplot as plt
import requests
import json
#由于访问url过于慢;将数据下载到本地是json数据
#url='https://restcountries.com/v3.1/all'#r=requests.get(url)
#r.json()获得文件数据
#statuscode判断是否成功访问filename='/Users/oommnn/Desktop/学习笔记/数据可视化30天项目/all.json'try:with open(filename) as f:data=json.load(f)except FileNotFoundError:print(f"{filename}找不到")#这是姓名的数组print(data[0]['name'])
#这是人口的消息print(data[0]['population'])results=[]
#250个国家print(len(data))
for i in range(len(data)):result={'name':data[i]['name']['common'],'population':int(data[i]['population'])}results.append(result)
print(results[:2])arr_results=np.array(results)
#列表的排序
results=sorted(results,key=lambda x: x['population'],reverse=True)
#np数组的排序;没有直接的方法#可视化过程;使用matplotlib
x_values=[result['name'] for result in results]
y_values=[result['population'] for result in results]fig,axs=plt.subplot_mosaic([['left_top','left_top'],['left_bottom','left_bottom']],figsize=(20,15),facecolor='gray')axs['left_top'].bar(x_values[:10],y_values[:10])
axs['left_top'].set_title("Max Population about country")
axs['left_top'].set_xlabel('Country')
axs['left_top'].set_ylabel('Number/a hundred million')
axs['left_top'].set_xticks(x_values[:10],x_values[:10],rotation=45,fontsize=13)axs['left_bottom'].bar(x_values[-10:],y_values[-10:])
axs['left_bottom'].set_title("Min Population about country")
axs['left_bottom'].set_xlabel('Country')
axs['left_bottom'].set_ylabel('Number/people')
axs['left_bottom'].set_xticks(x_values[-10:],x_values[-10:],rotation=45,fontsize=13)plt.show()

在这里插入图片描述

总结

  • 关于数组的字典排序,属于lambda内置排序函数
  • set_xticks设置刻度和字体翻转;第一个参数是需要多少个刻度ticks,数值型代表数,字符串代表本身,第二个参数是一一对应刻度的标签labels

http://www.ppmy.cn/server/42119.html

相关文章

PTA--《面线对象程序设计》作业3-继承与多态

目录 一:函数题 6-2 长方形长方体类: 6-1 从抽象类shape类扩展出一个圆形类Circle 二:编程题 7-1:周长计算器 一:函数题 6-2 长方形长方体类: 定义一个长方形类Rectangle,拥有长、宽属性…

umi项目配置之项目构建时配置umirc.ts

对于 umi 中能使用的自定义配置,你可以使用项目根目录的 .umirc.ts 文件或者 config/config.ts,值得注意的是这两个文件功能一致,仅仅是存在目录不同,2 选 1 ,.umirc.ts 文件优先级较高 umi 的配置文件是一个正常的 n…

Unity TileMap入门

概述 相信很多同学学习制作游戏都是从2D游戏开始制作的吧,瓦片地图相信大家都有接触,那接下来让我们学习一下这部分的内容吧! unity组件入门篇总目录----------点击导航 Tilemap AnimationFrameRate:设置每帧动画的播放速率。Color:瓦片地图…

AlmaLinux 文件重命名 mv命令用法示例

AlmaLinux 文件重命名 在AlmaLinux中,您可以使用mv命令来重命名文件。这是一个简单的命令行实例,展示如何将文件oldname.txt重命名为newname.txt: mv oldname.txt newname.txt 如果您想批量重命名文件,可以使用脚本循环。例如&am…

【Qt C++实现蓝牙互联】

在 Qt C++ 中实现蓝牙互联可以通过 Qt 的蓝牙模块来实现。下面是一个简单的示例,演示如何在 Qt C++ 中使用蓝牙模块进行蓝牙互联,实现搜索设备、连接设备等功能。 // main.cpp #include <QCoreApplication> #include <QBluetoothDeviceDiscoveryAgent> #include…

Unity Animation--动画窗口指南(使用动画视图)

Unity Animation--动画窗口指南&#xff08;使用动画视图&#xff09; 使用动画视图 window -> Animation 即可打开窗口 查看GameObject上的动画 window -> Animation -> Animation 默认快捷键 Ctrl 6 动画属性列表 在下面的图像中&#xff0c;“动画”视图&am…

某票星球网图标点选验证码YOLOV8识别案例

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 图标点选验证码大家都不陌生了,我们来看下数据集 引言与个人想法 先说结论,本文采用的方法能够达到99的准确率,效果图如下 做图标点选其实方法有很多,有的…

electron 视频抓图并保存图片到本地

1. 思路&#xff1a; 1.1 通过canvas生成一块画布&#xff0c;在画布上绘制图形 let videoEl document.getElementById("testVideo");let params {videoEl,quality:0.95}let canvasEl document.createElement(canvas);canvasEl.width videoEl.width;canvasEl.he…