Matplotlib | 高阶绘图案例【3】- 五大战区高校排名

news2024/11/23 17:12:16

文章目录

  • 🏳️‍🌈 1. 导入模块
  • 🏳️‍🌈 2. 数据处理
    • 2.1 高效数据
    • 2.2 学校排名
  • 🏳️‍🌈 3. 绘图
    • 3.1 绘制图布,设置极坐标系
    • 3.2 绘制学校排名柱状图
    • 3.3 绘制五大战区扇形区域
    • 3.4 添加战区、学校文本
    • 3.5 前三学校高亮
    • 3.6 添加标题
    • 3.7 添加注释
  • 🏳️‍🌈 4. 在线运行地址
  • 🏳️‍🌈 5. 可视化项目源码+数据

大家好,我是 👉【Python当打之年(点击跳转)】


本期是 Matplotlib高阶绘图案例系列 的第 3 期, Matplotlib系列和Pyecharts系列都会不间断更新,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

往期:

Matplotlib | 高阶绘图案例【2】
Matplotlib | 高阶绘图案例【1】

先看看效果:

在这里插入图片描述

🏳️‍🌈 1. 导入模块

import numpy as np
import pandas as pd
import funcy as fc
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.family'] = ['Microsoft YaHei']

🏳️‍🌈 2. 数据处理

2.1 高效数据

数据获取部分见:Pandas+Pyecharts | 2023软科中国大学排名分析可视化

df = pd.read_excel('./中国大学综合排名2023.xlsx')

在这里插入图片描述

2.2 学校排名

area_dict = {
    '中部战区':['北京','陕西','河北','河南','湖北','山西','天津'],
    '东部战区':['江苏','浙江','上海','安徽','江西','福建'],
    '南部战区':['云南','贵州','湖南','广西','广东','海南'],
    '西部战区':['新疆','甘肃','青海','四川','西藏','宁夏','重庆'],
    '北部战区':['黑龙江','吉林','辽宁','内蒙古','山东'],
}

def dealdatas(data):
    for key,value in area_dict.items():
        if data in value:
            return key
    return ''

df['战区'] = df['地区'].apply(dealdatas)
all_score_datas = []
all_colls = []
for key in area_dict.keys():
    df_tmp = df[df['战区'] == key]
    df_tmp = df_tmp.sort_values('评分',ascending=False)[:10]
    all_score_datas.append(df_tmp['评分'].tolist())
    all_colls.append(df_tmp['学校名称'].tolist())

排名:
在这里插入图片描述

评分 :
在这里插入图片描述

🏳️‍🌈 3. 绘图

3.1 绘制图布,设置极坐标系

fig, ax = plt.subplots(figsize=(12, 12),dpi=100)
ax.set_xlim(0,1200)
ax.set_ylim(0,1200)
ax.set_facecolor('#080708')
ax1 = fig.add_axes([0.22, 0.2, 0.6, 0.6], polar=True,facecolor='#080708')
plt.show()

在这里插入图片描述

3.2 绘制学校排名柱状图

num = 0 
for i in range(0,55,11):
    # 学校数据
    data_tmp = all_score_datas[num][::-1]
    for idx, group in enumerate(fc.pairwise(theta_group_tmp)):
        theta = (group[0] + group[1]) / 2    
        ax1.bar(theta, data_tmp[idx], width=[np.pi / 28], bottom=800,
                facecolor=colors1[num], edgecolor='white', linewidth=1, alpha=0.95, zorder=9)
    num += 1

在这里插入图片描述

3.3 绘制五大战区扇形区域

theta = (theta_group_tmp[0]+theta_group_tmp[-1])/2    
ax1.bar(theta, 350, width=[np.pi / 2.8], bottom=2500,edgecolor='white', linewidth=1, alpha=0.95, zorder=9)
plt.show()

在这里插入图片描述

3.4 添加战区、学校文本

# 战区
ax1.annotate(list(area_dict.keys()), xy=[theta, 2640], va='center', ha='center',
                 zorder=10, rotation=angle,fontsize=18,color='w', fontweight='bold')
# 学校
ax1.text(theta, data_tmp[idx]+900,coll_tmp[idx],fontsize=10,color='w',rotation=angle,rotation_mode='anchor',
                zorder=10,va="center", ha="left" if num < 1 or num > 3  else 'right')
plt.show()

在这里插入图片描述

3.5 前三学校高亮

# 学校
ax1.text(theta, data_tmp[idx]+900,coll_tmp[idx],fontsize=10,color='w',rotation=angle,rotation_mode='anchor',
                zorder=10,va="center", ha="left" if num < 1 or num > 3  else 'right')
plt.show()

在这里插入图片描述

3.6 添加标题

ax1.text(np.pi/2, 100,'五大战区\n高校排行榜',fontsize=20,color='#fff200', va="center", ha="center", fontweight='heavy' )
ax1.text(-np.pi/2, 300,'- @公众号:Python当打之年 -',fontsize=8,color='w', va="center", ha="center",bbox=dict(boxstyle="round", fc="#ECEFF1", ec="#ECEFF1", alpha=0.4) )
plt.show()

在这里插入图片描述

3.7 添加注释

ax1.text(-np.pi*3/4, 4650,'\n'.join(text_tmp),fontsize=10,color='w',va="center", ha="left")
ax1.text(-(np.pi*3.1)/4, 4330,'五大战区:\n',fontsize=16,color='w',ha="left", va="center", fontweight='heavy')
plt.show()

在这里插入图片描述

🏳️‍🌈 4. 在线运行地址

在线运行地址(全部代码):
https://www.heywhale.com/mw/project/64fe79d7048d25fc8d80fef3

🏳️‍🌈 5. 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

javaSE___语法基础(关键字、标识符、数据类型、字符、字符串、运算符)

语法基础 一、关键字的概述和使用二、标识符的概述和组成规则三、标识符中常见的命名规则四、数据类型的概述和分类五、数据类型的概述和分类六、数据类型转换之强制转换七、数据类型转换之强制转换超出范围八、字符和字符串参与运算九、算术运算符的基本用法十、算术运算符和-…

闭包的理解

1.什么是闭包&#xff1f; 变量的私有化。一个函数内的变量,随着函数的执行完毕,对于的变量也会随着销毁,闭包可以让变量在函数执行完毕之后不必销毁,通常将这个变量通过匿名函数的形式return出去,这个变量只能被访问,不能被修改。 2.证明变量执行玩被销毁 (1)函数体没有被包…

((type *)0)->member的用法

问题缘由&#xff0c;在学习 rt-thread 内核的时候遇到了这么一行代码&#xff1a; to_thread rt_list_entry(rt_thread_priority_table[0].next,struct rt_thread, tlist); 而 rt_list_entry 的宏定义如下&#xff1a; /* 已知一个结构体里面的成员的地址&#xff0c;反推…

利用 Python 中的地理空间数据与 GeoPandas

推荐&#xff1a;使用 NSDT编辑器快速搭建3D应用场景 空间数据的真正潜力在于它能够连接数据点及其各自的位置&#xff0c;为高级分析创造无限的可能性。地理空间数据科学是数据科学中的一个新兴领域&#xff0c;旨在利用地理空间信息并通过空间算法和机器学习或深度学习等先进…

Android:使用命令行发现keytool不是内部命令解决办法

一、前言&#xff1a;最近在搞引入高德地图的SDK&#xff0c;发现需要给app签名打包。记录一下。 二、当我在命令行中输入keytool的时候说keytool不是内部命令 解决方案&#xff1a; 找到系统属性--------高级----------点击环境变量 双击点开 找到java\jre1.8.0_202\bin新建…

GLTF在线编辑器

GLTF在线编辑器提供了一个内置的模型查看器&#xff0c;可以加载和预览 glTF/glb 文件。用户可以在不用安装任何插件的情况下直接在浏览中快速查看和编辑器3D模型。 它的功能特点如下&#xff1a; 1、打开GLTF模型 用户可以在GLTF编辑器中拖入GLB/GLTF模型或者选择打开本地GL…

Bootstarp4 设计网页轮播组件

很多网站都有广告轮播功能&#xff0c;可使用bootstrap4中的carousel组件非常简单的实现。 目录 下载bootstrap4 轮播功能实现 简单实现轮播组件 增加标识图标 增加标题和说明 切换淡入淡出 设置数据间隔 总结 下载bootstrap4 下载 Bootstrap Bootstrap v4 中文文档 …

Android13 下拉菜单栏中添加快捷截图按钮

Android 13 原生系统下拉状态栏中是没有快捷截图按钮,现在需要添加快捷截图功能。 添加快捷截图功能后的效果图: 涉及修改的文件如下: modified: vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml modified: vendor/mediatek/proprietary/…

软件测试的流程有哪些?

一、需求调研 1. 委托方提供资料 A. 填写测试委托申请表 B. 操作手册 C. 开发需求规格说明书 D. 开发合同及招标文件等 2. 双方技术沟通确定测试具体内容&#xff0c;如功能性测试、性能效率测试、信息安全性测试、兼容性测试、可靠性测试等。 3. 我方给出测试方案及报价…

SpringMVC学习|Servlet回顾、理解SpringMVC小demo、SpringMVC原理

Servlet回顾 创一个空的maven父工程&#xff0c;导入相关依赖&#xff0c;测试的、spring的、servlet的、jsp以及jstl标签的。 创建一个空的maven子项目&#xff0c;并添加web支持 为了保险起见&#xff0c;在子项目中添加servlet和jsp的依赖 编写一个Servlet类&#xff0c;实…

【Python】从入门到上头—常用内置模块基础应用(13)

文章目录 datetimebase64hashlibhmacurllibXMLHTMLParserrandom小结 datetime datetime是Python处理日期和时间的标准库。 获取当前日期时间 from datetime import datetime now datetime.now() # 获取当前datetime print(now) #2023-09-13 10:28:48.621343 print(type(no…

JSP ssm 网上求职管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP ssm 网上求职管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采…

3900页手册415集视频426G资料迅为RK3568开发板

资料优势 专为3568编写|迅为原创|拒绝网络拼凑 20个手册2800页手册进行结构分层适用于学习与开发 为了方便大家清晰快速的学习&#xff0c;迅为iTOP-3568开发板手册资料全面升级&#xff0c;对手册内容进行了结构分层&#xff0c;共计20个文档&#xff0c;超2800页的资料专为…

sql注入之盲注总结

死在山野的风里&#xff0c;活在自由的梦里 sql注入之盲注总结 布尔 - 逻辑判断时间 - 延时判断报错 - 报错回显&#xff08;强制性报错 &#xff09;以DWVA靶场为例 盲注就是在注入的过程中&#xff0c;获取的数据不能显示到前端页面&#xff0c;此时&#xff0c;我们需要利用…

2023年武汉初级、中级、副高工程师职称评审条件是什么?甘建二告诉你

武汉中级职称评审通知已经出来了&#xff0c;武汉市中级、副高申报时间是8月31--9月18号&#xff0c;那么评这些职称需要满足什么条件呢&#xff1f;今天甘建二给大家分享一下评职称学历年限、专业等是怎么计算的&#xff0c;点赞收藏慢慢看。 一、武汉初级职称评审条件&#x…

【MySQL进阶】SQL性能分析

一、SQL性能分析 1.SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供服务器状态信 息。通过如下指令&#xff0c;可以查看当前数据库的 INSERT 、 UPDATE 、 DELETE 、 SELECT 的访问频次&#xff1a; -- session 是查看当…

jvm深入研究文档--整体概念

阿丹&#xff1a; 精通JVM对于一个java工程师非常重要&#xff0c;要是深入了解了jvm就可以有效的面对下面的问题 程序调优&#xff1a;JVM的配置和调优对于程序的运行有着至关重要的影响。不同的业务场景需要不同的JVM配置&#xff0c;比如设置不同的垃圾收集器、调整新生代和…

软考 - 计算机组成与体系笔记

数据的表示 进制转化 二进制转十进制&#xff08;十进制以D表示&#xff09; 从右往左&#xff0c;用二进制位上的数字乘以2的n次幂的和&#xff08;n从0开始1累加&#xff09; 十进制转二进制&#xff08;二进制以B表示&#xff09; 十进制数不断除以2直至到0&#xff0c;得…

电子智能充气泵pcba/芯片方案

智能充气泵是一种常见的气体压缩设备&#xff0c;它可以将空气或其他气体压缩成高压气体&#xff0c;用于充气、输送、压缩等工业和生活领域。智能充气泵的原理是利用机械或电动力量将气体压缩&#xff0c;使其体积减小&#xff0c;压力增大&#xff0c;从而达到充气的目的。电…

【echarts】如何将iconfont转换成echart所需的path路径 echarts折线图、柱状图如何设置自定义svg图标

步骤 下载iconfont图标到本地&#xff0c;用浏览器打开&#xff0c;右键查看源代码&#xff0c;或者用开发IDE软件打开&#xff0c;找到path d...&#xff0c;这个就是我们要传递给echart的icon的值。 代码示例&#xff1a; legend: {data: data?.map((item) > item.comp…