我是靠谱客的博主 聪慧汉堡,最近开发中收集的这篇文章主要介绍开学季,教你用 Python 画大学教室座位神分区图!网友直呼“中枪”,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(给Python开发者加星标,提升Python技能


作者:恋习Python / 丁彦军 (本文来自作者投稿)


我们上过大学的朋友们都知道,大学没有固定教室也没有固定的座位,所以大家可以随便找个自己喜欢的位置坐下。


别看这些不起眼的座位,感觉没什么差别。其实,它们可是隐藏着许多小秘密的哦~虽然这些座位,没有什么差别,但是他们可以反映出你在学校里面属于学霸还是学渣,一目了然。


网上曾有这样一张神奇的教室座位分区图,网友直呼“中枪”!


640?wx_fmt=jpeg

图摄:张孟迪

修图:丁彦斌


从“神座位表”中可以看到,一间教室被划分成了“学霸区”、“妹纸区”、“考神区”、“女神区”、“睡神区”、“LOL队友区”和“深藏功与名”等十个不同的区域。


一贯作风!恋习Python这就用Python给大家画这幅有趣的神分区图,看看是不是跟你的情况一样呢?


基本思路:我们将画布分成若干子画布,这些子画布构成绘图区域,在这些绘图区域上分别绘制图形,这就让我们想到函数subplot2grid()的使用方法。


plt.subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)


通过使用subplot2grid()函数的rowspan 和colspan 参数可以让子区跨越固定的网格布局的多个行和列,实现不同的子区布局。


值得注意的是,图形位置的索引起点是从0 开始算起的,而不是像子区函数subplot()中的图形位置是从1 开始算起的。


比如我们要画一张讲堂图片,区域大小为(3,3),起始位置为(0,0),跨区域只在行方向延伸3,详情代码如下:

import matplotlib.pyplot as pltimport matplotlib as mpl  mpl.rcParams["font.sans-serif"]=["SimHei"]  mpl.rcParams["axes.unicode_minus"]=False
plt.subplot2grid((3,3),(0,0),colspan=3)plt.text(0.5,0.5,"讲堂",ha="center",fontsize=25)
plt.subplot2grid((3,3),(1,1),colspan=1)plt.text(0.5,0.5,"学霸区",ha="center",fontsize=20)


结果图如下:

640?wx_fmt=png


理解了函数subplot2grid()基本使用方法后,再回头看看那张神分布图,我们可将其区域大小为(6,8),大小是由自己设计,没有固定。可依次按照迟到党、睡神、深藏功与名等顺序,画每一类所属的区域。


详情代码如下:


import matplotlib.pyplot as pltimport matplotlib as mpl  mpl.rcParams["font.sans-serif"]=["SimHei"]  mpl.rcParams["axes.unicode_minus"]=False  
plt.subplot2grid((6,8),(0,0),colspan=2,fc='red')plt.text(0.5,0.5,"迟到党",ha="center",fontsize=15)
plt.subplot2grid((6,8),(0,2),colspan=4,fc='LightGrey')plt.text(0.5,0.5,"睡神",ha="center",fontsize=20)
plt.subplot2grid((6,8),(0,6),rowspan=2,colspan=2)plt.text(0.0,0.5,"深藏功与名",va="center",fontsize=15)
plt.subplot2grid((6,8),(1,0),colspan=2,rowspan=2)plt.text(0.5,0.5,"考神",ha="center",fontsize=15)
plt.subplot2grid((6,8),(1,2),colspan=4,rowspan=2,fc='Green')plt.text(0.5,0.5,"LOL队友",ha="center",fontsize=20)
plt.subplot2grid((6,8),(2,6),rowspan=2,colspan=2,fc='Moccasin')plt.text(0.5,0.5,"忧伤少年",ha="center",fontsize=15)
plt.subplot2grid((6,8),(3,0),colspan=2,rowspan=2,fc='pink')plt.text(0.5,0.5,"女神",ha="center",fontsize=15)
plt.subplot2grid((6,8),(3,2),colspan=4,fc='Crimson')plt.text(0.5,0.5,"学霸",ha="center",fontsize=15)
plt.subplot2grid((6,8),(4,2),colspan=6,fc='Orange')plt.text(0.5,0.5,"妹子区",ha="center",fontsize=15)
plt.subplot2grid((6,8),(5,0),colspan=8,fc='yellow')plt.text(0.5,0.5,"伪学霸区",ha="center",fontsize=20)
plt.suptitle("大学教室座位神分区图",fontsize=20)plt.savefig(r'C:UsersAdministratorDesktopzuowei.png')plt.show()


最终成品如下:

640?wx_fmt=png


惊不惊喜,意不意外?


关于颜色的填充,可根据自己的喜欢颜色来设计,具体可参考RGB颜色值与十六进制颜色码转换工具,链接:

https://www.sioe.cn/yingyong/yanse-rgb-16/


文中,还用到函数suptitle()是绘制Figure 画布标题的文本内容,text()是设置文字说明。在这里主要说说,text语法使用


text(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")


参数说明:

x,y:表示坐标值上的值

string:表示说明文字
fontsize:表示字体大小
verticalalignment:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
horizontalalignment:水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]


好了,大学里面的教室座位分区用Python画就是这样了,哈哈哈,是不是忒简单,一个subplot2grid()就搞定


最后,说说关于迟到党,至于迟到的嘛,没得挑,就哪儿有空位,自觉补去吧!我可是深有体会呀smiley_5.png


【本文作者】


丁彦军: 一名痴恋于 Python 的码农,个人公号:「恋习Python」,在这里我们一起用Python 做些有意义的事。



推荐阅读

(点击标题可跳转阅读)

神还原女神照片!GAN 为百年旧照上色

啥是佩奇?用 Python 画给你看

用 Python 全自动下载抖音小姐姐视频



觉得本文对你有帮助?请分享给更多人

关注「Python开发者」加星标,提升Python技能

640?wx_fmt=png

喜欢就点一下「好看」呗~

最后

以上就是聪慧汉堡为你收集整理的开学季,教你用 Python 画大学教室座位神分区图!网友直呼“中枪”的全部内容,希望文章能够帮你解决开学季,教你用 Python 画大学教室座位神分区图!网友直呼“中枪”所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部