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

文章目录

  • 🏳️‍🌈 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 keyreturn ''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.hqwc.cn/news/106551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试经典题--页面布局

题目 假设高度已知&#xff0c;请写出三栏布局&#xff0c;其中左、右栏宽度各为300px&#xff0c;中间自适应。 五种解决方式代码 浮动解决方式 绝对定位解决方式 flexbox解决方式 表格布局 网格布局 源代码 <!DOCTYPE html> <html lang"en"> <…

Python之数据库(MYSQL)连接

一&#xff09;数据库SQL语言基础 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database…

EPICS电机支持(asynMotor)

EPICS电机支持 1&#xff09; 顶层对象是EPICS motor记录 已经对这个对象编写了很多代码&#xff1a;spec&#xff0c;IDL和Python类等 2&#xff09;下一层是EPICS设备支持 了解motor记录&#xff0c;与驱动会话 3&#xff09;最底层是EPICS驱动 对motor记录一无所知&am…

Mac系统 AndroidStudio Missing essential plugin:org.jetbrains.android报错

打开Android Studio,提示 Missing essential plugin:org.jetbrains.android错误&#xff0c;产生的原因是Kotlin被禁用。 解决的方法是删除disabled_plugins.txt&#xff0c;Mac OS对应的路径为&#xff1a; /Users/xzh/Library/Application Support/Google/AndroidStudio202…

Azure + React + ASP.NET Core 项目笔记一:项目环境搭建(二)

有意义的标题 pnpm 安装umi4 脚手架搭建打包语句变更Visual Studio调试Azure 设置变更发布 pnpm 安装 参考官网&#xff0c;或者直接使用npm安装 npm install -g pnpmumi4 脚手架搭建 我这里用的umi4&#xff0c;官网已附上 这里需要把clientapp清空&#xff0c;之后 cd Cl…

CG MAGIC分享3d Max中的Corona渲染器材质如何成转换VRay材质?

大家无论是使用Corona渲染器还是Vray渲染器时&#xff0c;进行材质问题时&#xff0c;都会遇到转化材质问题。 如何将CR转换成VR或者将VR转换CR材质呢&#xff1f; 对于这两者之间转换最好最好的方法只能是材质转换器。 CG MAGIC小编&#xff0c;梳理了两种方法&#xff0c;大…

JVM垃圾回收器

收集算法是内存回收的方法论&#xff0c;垃圾收集器就是内存回收的具体实现。收集器主要分三类&#xff1a;串行收集器、并行收集器以及并发收集器。 一、基础概念 1、并发和并行 a&#xff1a;并行&#xff08;Parallel&#xff09;&#xff1a;指多条垃圾收集线程并行工作&…

【漏洞复现】E-office文件包含漏洞

漏洞描述 Weaver E-Office是中国泛微科技(Weaver)公司的一个协同办公系统。泛微 E-Office 是一款标准化的协同 OA 办公软件,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。 该漏洞是由于存在…

MATLAB R2018b安装教程

目录 一、软件下载 二、软件介绍 三、安装须知 四、安装步骤 【最后】 &#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;MATLAB基础及应用&#x1f91d;希望作者的文章能…

从9.10拼多多笔试第四题产生的01背包感悟

文章目录 题面基本的01背包问题本题变式 本文参考&#xff1a; 9.10拼多多笔试ak_牛客网 (nowcoder.com) 拼多多 秋招 2023.09.10 编程题目与题解 (xiaohongshu.com) 题面 拼多多9.10笔试的最后一题&#xff0c;是一道比较好的01背包变式问题&#xff0c;可以学习其解法加深对…

【PowerQuery】PowerQuery学习路径

PowerQuery这么好,怎么去学习呢?相信很多初读本书的朋友迫切的希望了解整个PowerQuery全景知识和它提供的相应的功能。但是对于PowerQuery来说,一开始就会进行自定义函数的构建当然也是不可能的,这里有相应的学习路径来进行由浅入深的学习,帮助读者更好的理解PowerQuery的…

一文解析-通过实例讲解 Linux 内存泄漏检测方法

一、mtrace分析内存泄露 mtrace&#xff08;memory trace&#xff09;&#xff0c;是 GNU Glibc 自带的内存问题检测工具&#xff0c;它可以用来协助定位内存泄露问题。它的实现源码在glibc源码的malloc目录下&#xff0c;其基本设计原理为设计一个函数 void mtrace ()&#x…