0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python 可視化如何配色

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-30 15:43 ? 次閱讀

我們?cè)诶?a href="http://wenjunhu.com/tags/python/" target="_blank">Python進(jìn)行數(shù)據(jù)可視化時(shí),有著大量的高質(zhì)量庫(kù)可以用,比如: Matplotlib 、 seaborn 、 PlotlyBokeh 、ggplot等等。但圖表好不好看,配色占一半。如果沒(méi)有良好的審美觀,很容易做出來(lái)的東西辣眼睛……

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

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

那么,我們用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)和主要配色方案。

具體用法,還是先安裝

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)

8C81F933-7AF8-441f-A0F5-EAA900052BFE.png

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2713

    瀏覽量

    47485
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    641

    瀏覽量

    29216
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1194

    瀏覽量

    20946
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84695
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)可視化Python-matplotlib概述

    數(shù)據(jù)可視化(二):Python-matplotlib
    發(fā)表于 07-22 14:58

    如何把AD中非可視化區(qū)域物件移到可視化區(qū)域?

    AD中非可視化區(qū)域物件怎么移到可視化區(qū)域???
    發(fā)表于 09-10 05:36

    python數(shù)據(jù)可視化的方法和代碼

    Python數(shù)據(jù)可視化匯總
    發(fā)表于 10-14 14:59

    Python數(shù)據(jù)可視化專(zhuān)家的七個(gè)秘密

    分享 Python數(shù)據(jù)可視化專(zhuān)家的七個(gè)秘密
    發(fā)表于 05-15 06:43

    python數(shù)據(jù)可視化之畫(huà)折線(xiàn)圖

    python數(shù)據(jù)可視化之畫(huà)折線(xiàn)圖,散點(diǎn)圖
    發(fā)表于 05-27 08:09

    Python數(shù)據(jù)可視化

    Python數(shù)據(jù)可視化:網(wǎng)易云音樂(lè)歌單
    發(fā)表于 07-19 08:30

    三維可視化的應(yīng)用和優(yōu)勢(shì)

    ,為此三維可視化運(yùn)維系統(tǒng)登場(chǎng)了。  三維可視化的應(yīng)用  宏觀場(chǎng)景可視化:在特定的環(huán)境中對(duì)隨著時(shí)間推移而不斷變化的目標(biāo)實(shí)體進(jìn)行檢測(cè),可以直觀、靈活、逼真的展示所處區(qū)域的情景和環(huán)境,可以快速掌握目標(biāo)區(qū)域
    發(fā)表于 12-02 11:52

    Python拉勾網(wǎng)數(shù)據(jù)采集與可視化

    本文是先采集拉勾網(wǎng)上面的數(shù)據(jù),采集的是Python崗位的數(shù)據(jù),然后用Python進(jìn)行可視化。主要涉及的是爬蟲(chóng)&數(shù)據(jù)可視化的知識(shí)。
    的頭像 發(fā)表于 03-13 14:18 ?3261次閱讀
    <b class='flag-5'>Python</b>拉勾網(wǎng)數(shù)據(jù)采集與<b class='flag-5'>可視化</b>

    使用Python可視化數(shù)據(jù),機(jī)器人開(kāi)發(fā)編程

    機(jī)器學(xué)習(xí)開(kāi)發(fā),與Mail.Ru Search數(shù)據(jù)分析負(fù)責(zé)人Egor Polusmak和Mail.Ru Group數(shù)據(jù)科學(xué)家Yury Kashnitsky一起探索如何使用Python可視化數(shù)據(jù)。在機(jī)器學(xué)習(xí)領(lǐng)域中,可視化并不僅僅用來(lái)
    的頭像 發(fā)表于 03-15 16:56 ?8989次閱讀

    Python實(shí)現(xiàn)PLC數(shù)據(jù)可視化呈現(xiàn)于Web端

    現(xiàn)介紹另一種通過(guò)Python實(shí)現(xiàn)PLC數(shù)據(jù)可視化呈現(xiàn)于Web端的方案。
    的頭像 發(fā)表于 08-30 11:27 ?7061次閱讀
    <b class='flag-5'>Python</b>實(shí)現(xiàn)PLC數(shù)據(jù)<b class='flag-5'>可視化</b>呈現(xiàn)于Web端

    Python數(shù)據(jù)可視化編程實(shí)戰(zhàn)

    Python數(shù)據(jù)可視化編程實(shí)戰(zhàn)資料免費(fèi)下載。
    發(fā)表于 06-01 14:37 ?29次下載

    怎樣使用Python去進(jìn)行可視化繪制?

    今天給大家?guī)?lái)繪制“手繪風(fēng)格”可視化作品的小技巧,主要涉及Python編碼繪制,內(nèi)容如下。
    的頭像 發(fā)表于 06-23 11:49 ?2138次閱讀
    怎樣使用<b class='flag-5'>Python</b>去進(jìn)行<b class='flag-5'>可視化</b>繪制?

    全網(wǎng)最全數(shù)據(jù)可視化配色指南都在這!

    很多同學(xué)都對(duì)可視化都非常感興趣,但等自己去畫(huà)圖或者制作數(shù)據(jù)分析報(bào)告時(shí),配色可能亮瞎狗眼。今天就給大家分享一篇最全數(shù)據(jù)可視化配色指南,聚焦可視化
    的頭像 發(fā)表于 06-23 16:47 ?3228次閱讀

    使用arduino和python可視化你的比特幣收益和損失

    電子發(fā)燒友網(wǎng)站提供《使用arduino和python可視化你的比特幣收益和損失.zip》資料免費(fèi)下載
    發(fā)表于 12-21 16:50 ?0次下載
    使用arduino和<b class='flag-5'>python</b><b class='flag-5'>可視化</b>你的比特幣收益和損失

    使用Python來(lái)收集、處理和可視化人口數(shù)據(jù)

    如何使用Python這一流行的編程語(yǔ)言來(lái)收集、處理和可視化印度和中國(guó)的人口數(shù)據(jù)呢?本文將向你介紹一些基本的步驟和技巧,幫助你掌握Python進(jìn)行可視化分析的方法。我們將使用以下幾個(gè)庫(kù)來(lái)
    的頭像 發(fā)表于 06-21 17:08 ?1402次閱讀
    使用<b class='flag-5'>Python</b>來(lái)收集、處理和<b class='flag-5'>可視化</b>人口數(shù)據(jù)