<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          別再問(wèn)我Python可視化如何配色了!

          共 2388字,需瀏覽 5分鐘

           ·

          2021-09-30 14:49

          我們?cè)诶肞ython進(jìn)行數(shù)據(jù)可視化時(shí),有著大量的高質(zhì)量庫(kù)可以用,比如:MatplotlibseabornPlotlyBokehggplot等等。但圖表好不好看,配色占一半。如果沒(méi)有良好的審美觀,很容易做出來(lái)的東西辣眼睛……

          所以想做好數(shù)據(jù)可視化,就要有合適的配色方案。除了可以借鑒參考配色網(wǎng)站的案例,也可以自己自定義一套配色方案。

          如何去自定義呢?

          我倒是有一個(gè)想法,配色的美感需要培養(yǎng),但在一開(kāi)始可以在優(yōu)秀的作品上尋找靈感,比如經(jīng)典電影、海報(bào)、風(fēng)景圖、Logo等等,這些都是絕佳的參考。

          自然風(fēng)景的顏色往往令人驚艷,咱們不妨以風(fēng)景圖為例。下圖是一副海上夕陽(yáng)圖,通過(guò)一番操作就提取到了一套配色方案(見(jiàn)圖右)。

          那么,我們用Python能不能做到呢?

          答案當(dāng)然是可以,畢竟Python除了不能生孩子,什么都能做!

          提取圖片中的配色

          在Python中對(duì)圖片進(jìn)行操作,最常用的兩個(gè)模塊就是PIL和opencv了。所以一開(kāi)始我的方案是,用Python庫(kù)打開(kāi)圖片,然后遍歷像素顏色,最后按照色彩比例進(jìn)行排序,即可得到該圖片的配色方案。

          結(jié)果做到一半,我發(fā)現(xiàn)自己忽略了一件事。大家都知道,Python 是一門(mén)優(yōu)雅的語(yǔ)言,簡(jiǎn)潔的語(yǔ)法,強(qiáng)大的功能。同時(shí)它還有擁有極其豐富的第三方庫(kù),這些庫(kù)幾乎都可以在github 或者 pypi上找到源碼。

          于是我搜了一下,確實(shí)有相關(guān)的庫(kù)可以提取圖片中的配色,那我們就不用重復(fù)造輪子了。

          這個(gè)模塊就是——Haishoku,可以用于從圖像中獲取主色調(diào)和主要配色方案。

          其GitHub網(wǎng)址為:https://github.com/LanceGin/haishoku

          具體用法,還是先安裝

          pip install haishoku

          將前文提到的海上夕陽(yáng)圖,保存到本地并命名為test.png

          from haishoku.haishoku import Haishoku
          image = 'test.png'
          haishoku = Haishoku.loadHaishoku(image)

          導(dǎo)入模塊,運(yùn)行代碼會(huì)返回一個(gè)Haishoku實(shí)例,你可以通過(guò)實(shí)例屬性haishoku.dominanthaishoku.palette,從而直接獲取到對(duì)應(yīng)的主色調(diào)和配色方案。

          主色調(diào)

          首先,要怎么獲取圖片的主色調(diào)呢?

          print(haishoku.dominant)

          這返回了一個(gè)結(jié)構(gòu)為 (R, G, B) 的元組,就是該圖片的主色調(diào)。

          運(yùn)行下面這行代碼

          Haishoku.showDominant(image)

          則會(huì)打開(kāi)一個(gè)臨時(shí)文件,用來(lái)預(yù)覽主色調(diào)的顏色。

          主色調(diào)(最多的顏色)

          配色方案

          #獲取配色方案
          pprint.pprint(haishoku.palette)

          返回一個(gè)結(jié)構(gòu)為:[(R, G, B), (R, G, B), …] 最大長(zhǎng)度為8的數(shù)組。

          這里使用了pprint模塊,對(duì)于這種多層嵌套的元組,正好可以美觀地打印出來(lái)。

          運(yùn)行下面這行代碼

          Haishoku.showPalette(image)

          則會(huì)打開(kāi)一個(gè)臨時(shí)文件,用來(lái)預(yù)覽圖片配色方案。(不會(huì)保存在本地)

          配色方案

          就這樣,只需幾行代碼就提取到圖片中的配色方案,是不是很簡(jiǎn)單。

          另外,Haishoku庫(kù)從v1.1.4版本后,支持從 url 中直接加載圖像。

          imagepath = 'https://img-blog.csdnimg.cn/20190222215216318.png'
              
          haishoku = Haishoku.loadHaishoku(imagepath)

          配色方案與可視化

          通過(guò)前面的操作,我們就提取到了合適的配色,那么就實(shí)戰(zhàn)一下吧。

          經(jīng)典電影、海報(bào)、風(fēng)景圖、Logo都是絕佳的參考對(duì)象。

          所以這次,我選擇了Google的Logo,并提取到它的配色方案。

          imagepath = 'google.png'

          haishoku = Haishoku.loadHaishoku(imagepath)

          pprint.pprint(haishoku.palette)

          Haishoku.showPalette(imagepath)

          那么,這套配色方案應(yīng)用到了數(shù)據(jù)可視化中,會(huì)是怎么樣呢??

          用Python繪制一個(gè)餅圖試試看

          感覺(jué)還不錯(cuò),這套配色方案我要收藏起來(lái)。如果大家覺(jué)得本文還不錯(cuò),記得給個(gè)一鍵三連!

          其實(shí)一開(kāi)始,自己自定義提取圖片配色也不是一點(diǎn)用沒(méi)有,我還隨帶用OpenCV制作了一個(gè)拾色器。

          也就是說(shuō),Python運(yùn)行時(shí)只需點(diǎn)擊,就可以獲取當(dāng)前圖片位置的顏色。

          如果大家感興趣的話,就右下角點(diǎn)個(gè)贊吧,本文點(diǎn)贊超過(guò)30??,火速更新!!!

          圖書(shū)推薦:Python爬蟲(chóng)與反爬蟲(chóng)開(kāi)發(fā)從入門(mén)到精通》本書(shū)從零基礎(chǔ)開(kāi)始講解,系統(tǒng)全面,案例豐富,注重實(shí)戰(zhàn),既適合Python程序員和爬蟲(chóng)愛(ài)好者閱讀學(xué)習(xí),也可以作為廣大職業(yè)院校相關(guān)專業(yè)的教材或參考用書(shū)。礎(chǔ)操作、圖形處理基本操作、簡(jiǎn)單圖形的繪制和對(duì)象的管理等內(nèi)容。

          文章點(diǎn)贊超過(guò)100+

          我將在個(gè)人視頻號(hào)直播(老表Max)

          帶大家一起進(jìn)行項(xiàng)目實(shí)戰(zhàn)復(fù)現(xiàn)

          贈(zèng)送對(duì)應(yīng)圖書(shū)1本



          掃碼即可加我微信

          老表朋友圈經(jīng)常有贈(zèng)書(shū)/紅包福利活動(dòng)


          學(xué)習(xí)更多:
          整理了我開(kāi)始分享學(xué)習(xí)筆記到現(xiàn)在超過(guò)250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲(chóng)、機(jī)器學(xué)習(xí)等方面,別再說(shuō)不知道該從哪開(kāi)始,實(shí)戰(zhàn)哪里找了
          點(diǎn)贊”就是對(duì)博主最大的支持 

          瀏覽 57
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91三级片在线观看 | 国产精品美女一区 | 久久久久理论片 | 大香蕉俺也去 | 国产成人精品三级麻豆 |