開學季,教你用Python畫大學教室座位神分割槽圖!網友直呼“中槍”
作者 | 丁彥軍
轉載自戀習Python(ID:sldata2017)
我們上過大學的朋友們都知道,大學沒有固定教室也沒有固定的座位,所以大家可以隨便找個自己喜歡的位置坐下。
別看這些不起眼的座位,感覺沒什麼差別。其實,它們可是隱藏著許多小祕密的哦~雖然這些座位,沒有什麼差別,但是他們可以反映出你在學校裡面屬於學霸還是學渣,一目瞭然。
網上曾有這樣一張神奇的教室座位分割槽圖,網友直呼“中槍”!
圖攝:張孟迪 修圖:丁彥斌
從“神座位表”中可以看到,一間教室被劃分成了“學霸區”、“妹紙區”、“考神區”、“女神區”、“睡神區”、“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 plt
import 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)
結果圖如下:
理解了函式subplot2grid()基本使用方法後,再回頭看看那張神分佈圖,我們可將其區域大小為(6,8),大小是由自己設計,沒有固定。可依次按照遲到黨、睡神、深藏功與名等順序,畫每一類所屬的區域。
詳情程式碼如下:
import matplotlib.pyplot as plt
import 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:\Users\Administrator\Desktop\zuowei.png')
plt.show()
最終成品如下:
驚不驚喜,意不意外?
關於顏色的填充,可根據自己的喜歡顏色來設計,具體可參考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()就搞定。
最後,說說關於遲到黨,至於遲到的嘛,沒得挑,就哪兒有空位,自覺補去吧!我可是深有體會呀
另外,做個小調查,你經常會選擇哪個位置坐下來聽課呢?歡迎大家在留言處評論。
(本文為 AI科技大本營轉載文章,轉載請聯絡原作者)
公開課推薦
◆
明晚8點
◆
推薦閱讀:
❤點選“閱讀原文”,檢視歷史精彩文章。
相關文章
- 猴年春晚吉祥物遭網友吐槽 谷歌躺著也中槍谷歌
- 電腦分割槽桌布超清 電腦桌面桌布工作分割槽高畫質圖
- 猴年春晚吉祥物遭網友瘋狂吐槽:谷歌不幸躺槍谷歌
- 董明珠網路直播首秀 網友直呼“好年輕”
- 教你用Python爬取圖蟲網Python
- ORM哪家強?java,c#,php,python,go 逐一對比, 網友直呼:全面客觀ORMJavaC#PHPPythonGo
- Hive中靜態分割槽和動態分割槽總結Hive
- 聊聊分割槽Partition——我們為什麼要分割槽(中)
- iPhone XR/XS降價還會高達20%?網友直呼:買早了!iPhone
- Oracle中重建表分割槽Oracle
- 中國石油大學攜手銳捷演繹“網際網路+教室“新生態
- 如何查詢分割槽表的分割槽及子分割槽
- 使用expdp匯出分割槽表中的部分分割槽資料
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引
- PLSQL根據分割槽表的分割槽名批次truncate分割槽SQL
- Linux主分割槽,擴充套件分割槽,邏輯分割槽Linux套件
- Oracle分割槽表及分割槽索引Oracle索引
- INTERVAL分割槽表鎖分割槽操作
- 電腦分割槽桌布超清 電腦桌面桌布工作分割槽高清圖
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- 別Cursor了,整合o1的GitHub Copilot讓網友直呼要回歸Github
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- 4種Kafka網路中斷和網路分割槽場景分析Kafka
- 使用split對分割槽表再分割槽
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- 分割槽表及分割槽索引建立示例索引
- oracle分割槽表和分割槽表exchangeOracle
- Linux分割槽方案、分割槽建議Linux
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引
- Linux主分割槽,擴充套件分割槽,邏輯分割槽[final]Linux套件
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引
- 【學習筆記】分割槽表和分割槽索引——管理索引分割槽(四)筆記索引
- Python繪製神經網路模型圖Python神經網路模型
- 雷軍曬小米5s對比iPhone7拍照樣張 網友神吐槽iPhone
- Linux中什麼是分割槽?Linux分割槽有什麼好處?Linux