新聞中心
前言

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),平川網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:平川等地區(qū)。平川做網(wǎng)站價(jià)格咨詢:18980820575
上一節(jié)(Python可視化,matplotlib最佳入門(mén)練習(xí) )我們只是單純使用 matplotlib 制作出以下圖表:
- 每年小麥產(chǎn)量柱狀圖
- 使用不同顏色標(biāo)記最小與最大值的柱子
但是,如果只是制作標(biāo)準(zhǔn)的圖表,我們有許多其他的選擇。最常見(jiàn)的就是使用 seaborn ,他是基于 matplotlib 的包裝。
這一節(jié)我們就來(lái)看看,如何使用 seaborn 生成標(biāo)準(zhǔn)圖表,然后結(jié)合 matplotlib 做出定制效果。
特別是多系列的情況下,會(huì)有一些技巧。
本文目標(biāo)圖表是這樣:
2個(gè)系列。每個(gè)系列找出最小最大的柱子,標(biāo)記成不同的顏色
本文所需要的庫(kù)如下:
數(shù)據(jù)是這樣子:
上一節(jié)做的事情如下:
- 設(shè)置 x 軸標(biāo)簽的旋轉(zhuǎn)角度
- 設(shè)置某個(gè)指定柱狀圖的柱子顏色
簡(jiǎn)單把這些事情包裝成函數(shù):
使用 seaborn 的代碼,實(shí)際與上一節(jié)直接使用 matplotlib 差不多:
看起來(lái) seaborn 沒(méi)有特別的地方!
這是因?yàn)槲覀冎挥幸粋€(gè)系列(上圖只涉及2個(gè)維度:wheat 與 year)
多系列
稍微修改一下數(shù)據(jù),
- 行3、4、5:復(fù)制一份數(shù)據(jù),小麥產(chǎn)量隨機(jī)生成
- 行7、8:新增一個(gè)列"type",把數(shù)據(jù)劃分成2類:"原始" 、"修改"
- 行10:合并成一份數(shù)據(jù)
- 行12:避免數(shù)據(jù)太多,圖表不利于閱讀,我只保留1750年以后的數(shù)據(jù)
現(xiàn)在數(shù)據(jù)成這樣:
每個(gè)年份都有2行記錄,字段"type"可以區(qū)分他們
使用 seaborn 可以非常方便映射多個(gè)維度的數(shù)據(jù):
行1:hue 是類別映射,通常如果有一個(gè)列數(shù)據(jù)是文本,就可以映射上去。這里把數(shù)據(jù)中的"type"字段映射
圖表成這樣子:
顯然沒(méi)有標(biāo)記出最大值的柱子
同時(shí)也提示執(zhí)行有錯(cuò)誤
如果我們查看圖表的容器就能看出關(guān)鍵:
原來(lái),seaborn 柱子分成2組。這是非常合理的
但數(shù)據(jù)范圍索引,卻是在整個(gè)數(shù)據(jù)共27行中查找
顯然,我們需要是2組的范圍索引:
語(yǔ)義非常清晰直白
但是,怎么準(zhǔn)確從圖表容器中找到需要的 BarContainer:
行7與行12:里面的 0 和 1 都是猜測(cè)的
原來(lái),seaborn 在生成這些容器時(shí),給容器的 label 屬性寫(xiě)入了對(duì)應(yīng)的數(shù)據(jù)值(就是我們數(shù)據(jù)的"type"字段):
注意,你不能使用 key 索引方式獲取,比如寫(xiě): axcontainers['修改'] ,這會(huì)報(bào)錯(cuò)
萬(wàn)事俱備,定義如下函數(shù):
現(xiàn)在調(diào)用變得非常簡(jiǎn)單:
圖表成這樣子:
接下來(lái)我會(huì)繼續(xù)編寫(xiě)更多非常規(guī)要求的圖表,敬請(qǐng)關(guān)注!
當(dāng)前題目:Python數(shù)據(jù)可視化,seaborn如何做出非常規(guī)圖表
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/coosijg.html


咨詢
建站咨詢
