1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        別再問我Python可視化如何配色了!

        共 2095字,需瀏覽 5分鐘

         ·

        2021-10-19 00:22


        我們在利用Python進行數(shù)據(jù)可視化時,有著大量的高質量庫可以用,比如:Matplotlib、seaborn、Plotly、Bokeh、ggplot等等。但圖表好不好看,配色占一半。如果沒有良好的審美觀,很容易做出來的東西辣眼睛……

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

        如何去自定義呢?

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

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

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

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

        提取圖片中的配色

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

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

        于是我搜了一下,確實有相關的庫可以提取圖片中的配色,那我們就不用重復造輪子了。

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

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

        具體用法,還是先安裝

        pip?install?haishoku

        將前文提到的海上夕陽圖,保存到本地并命名為test.png。

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

        導入模塊,運行代碼會返回一個Haishoku實例,你可以通過實例屬性haishoku.dominanthaishoku.palette,從而直接獲取到對應的主色調(diào)和配色方案。

        主色調(diào)

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

        print(haishoku.dominant)

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

        運行下面這行代碼

        Haishoku.showDominant(image)

        則會打開一個臨時文件,用來預覽主色調(diào)的顏色。

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

        配色方案

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

        返回一個結構為:[(R, G, B), (R, G, B), …] 最大長度為8的數(shù)組。

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

        運行下面這行代碼

        Haishoku.showPalette(image)

        則會打開一個臨時文件,用來預覽圖片配色方案。(不會保存在本地)

        配色方案

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

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

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

        配色方案與可視化

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

        經(jīng)典電影、海報、風景圖、Logo都是絕佳的參考對象。

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

        imagepath?=?'google.png'

        haishoku?=?Haishoku.loadHaishoku(imagepath)

        pprint.pprint(haishoku.palette)

        Haishoku.showPalette(imagepath)

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

        這次用剛才得到的Google配色,Python繪制一個環(huán)形圖試試看

        感覺還不錯,這套配色方案我要收藏起來。如果大家覺得本文還不錯,記得給個一鍵三連!

        對本文的代碼和文件感興趣的話,可以在本號【Python客?!亢笈_回復“配色”獲得


        往期推薦

        1、又一Python開發(fā)神技-weakref!

        2、寫 Python 代碼不可不知的函數(shù)式編程技術

        3、Python中的for循環(huán),沒你想的那么簡單~

        4、Python 3.10 正式發(fā)布了!我發(fā)現(xiàn)了一個可怕的功能...

        5、“釘釘打卡神器”開發(fā)者被判刑5年半,網(wǎng)友:改自己手機定位也犯法?


        點擊關注公眾號,閱讀更多精彩內(nèi)容

        瀏覽 40
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本浴室洗澡偷拍凸凹 | 亚洲国产精品一区二区第一页 | 国产又粗又爽又猛又大的动漫片 | 国产户外暴露路边刺激露出 | 免费看黄网站入口 | 小受性瘾放荡的文 | 七月色婷婷 | 男女羞羞视频 | 美女黄色一级视频 | 欧美在线大香蕉 |