Python-matplotlib 繪圖配色設計

2021-02-19 DataCharm
色彩搭配對圖表的第一印象至關重要,合理的設置對圖表的顏值提升有著很大的幫助,本期推文結合一個具體例子對圖表顏色搭配進行講解。

2.1 默認圖表

這裡首先設置一組數據,使用matplotlib的默認繪製方法進行圖表繪製,具體數據如下:
array([10, 25, 12, 15, 28, 13, 20, 26, 23, 40, 39, 35, 42, 31, 29, 16, 27],      dtype=int64)

fig,ax = plt.subplots(figsize=(10,5),dpi=200)x = np.arange(0,len(test_data),1)y = test_data['test'].valuesax.plot(x,y)ax.scatter(x[-1],y[-1],s=200,lw=2,zorder=2)ax.set_title('Matplotlib Color Set exercise_01 \n',fontsize=20,color='black')ax.text(.85,-.1,'\nVisualization by DataCharm',transform = ax.transAxes,        ha='center', va='center',fontsize = 8.5,color='black')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\商業圖表繪製\color_set_region.png',width=7,height=4,            dpi=900,bbox_inches='tight')

這裡使用了ax.plot()和ax.scatter()進行了繪圖,效果如下:

可以看出,圖中無論折線、散點還是刻度等的設置都是比較粗糙的,和"美觀"一點都掛不上鉤。下面就從數據處理填充面積以及色彩選三個方面進行處理,來使這幅圖變得高大上起來。

默認數據繪製的折線圖可能不是那麼的,當然,這也是和我們選擇較少的數據有關,要想達到平滑效果,需要對原始數據進行插值處理(Excel中選中圖表右擊,點擊 設置數據系列格式,選擇最後的平滑線  也能完成平滑處理)。python Scipy 包提供了interpolate模塊可以實現對一維二維數據的插值處理,在對一維數據時,interp1d()提供了如nearest、quadradic等多種插值方式,詳細內容大家可以查看官網啊。這裡選擇的插值方式為 "quadradic"方法,具體插值代碼及繪圖代碼如下:

from scipy import interpolatefig,ax = plt.subplots(figsize=(10,5),dpi=200,)
f = interpolate.interp1d(x,y,kind="quadratic")x_new = np.linspace(x.min(),x.max(),1000)y_new = f(x_new)ax.plot(x_new,y_new,lw=3,zorder=1)ax.scatter(x[-1],y[-1],s=200,lw=2,zorder=2)ax.set_title('Matplotlib Color Set exercise_01 \n',fontsize=20,color='black')ax.text(.85,-.1,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 8.5,color='black')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\商業圖表繪製\color_set_region_ed.png',width=7,height=4, dpi=900,bbox_inches='tight')plt.show()

結果如下:

加上填充面積可以使得圖表看起來不那麼單一,而且········(好吧·····我編不下去了,我就是為了最後成圖好看下而已)。添加如下代碼即可添加填充面積效果。

ax.fill_between(x_new, y_new,alpha=.15,lw=.1,zorder=2) 

這裡設置填充面積的線邊框寬度為0.1,會使得填充邊框不那麼明顯。效果如下:

如果不設置線寬lw,圖中紅色圓圈內將會有明顯的橫線效果,影響美觀。

記得好多小夥伴後臺留言或者直接和我溝通 關於色彩搭配的設置,其實,我也是一名學習者,可能就是看的色彩搭配網站以及精美可視化作品比較多,還是那句話 多模仿 多練習 對比不同色系對同一幅圖表所展示的效果,這是一個慢慢積累的過程,要是硬要我給建議,我也就多推幾個可視化的色彩搭配網站給你們。下面就本期推文設置相關顏色,具體代碼如下:

from scipy import interpolatefig,ax = plt.subplots(figsize=(10,5),dpi=200,facecolor ='#16151C')ax.set_facecolor('#16151C')f = interpolate.interp1d(x,y,kind="quadratic")x_new = np.linspace(x.min(),x.max(),1000)y_new = f(x_new)ax.plot(x_new,y_new,c="#12D3B0",lw=3,zorder=1)ax.scatter(x[-1],y[-1],s=200,c="#F1404B",ec='k',lw=1.5,zorder=2)ax.scatter(x[-1],y[-1],s=600,c="#F1404B",ec='none',lw=2,alpha=.4,zorder=1)ax.fill_between(x_new, y_new, color="#12D3B0",alpha=.15,ec="none",lw=.1,zorder=2) 
for spine in ['left','top', 'right', 'bottom']: ax.spines[spine].set_color("none")ax.grid(axis='y',color='white',lw=.5,alpha=.1,zorder=0)ax.tick_params(labelsize=13,labelcolor='white',grid_color='white',left=False,bottom=False)ax.set_ylim(bottom=0,top=50)ax.set_xlim(left=-0.5)ax.set_xticklabels(labels=['2011','2012','2013','2014','2015','2016','2017','2018','2019','2020'])ax.set_title('Matplotlib Color Set exercise_02 \n',fontsize=20,color='white')ax.text(.85,-.1,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 8.5,color='white')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\商業圖表繪製\color_set_02.png',width=7,height=4, dpi=900,bbox_inches='tight',facecolor='#16151C')plt.show()

涉及的顏色設置代碼如下:

fig,ax = plt.subplots(figsize=(10,5),dpi=200,facecolor ='#16151C')ax.set_facecolor('#16151C')ax.plot(x_new,y_new,c="#12D3B0",lw=3,zorder=1)ax.scatter(x[-1],y[-1],s=200,c="#F1404B",ec='k',lw=1.5,zorder=2)ax.scatter(x[-1],y[-1],s=600,c="#F1404B",ec='none',lw=2,alpha=.4,zorder=1)ax.fill_between(x_new, y_new, color="#12D3B0",alpha=.15,ec="none",lw=.1,zorder=2) plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\商業圖表繪製\color_set_02.png',width=7,height=4,            dpi=900,bbox_inches='tight',facecolor='#16151C')

效果如下:

同時也可以設置如下效果:

本期推文就是對可視化色彩合理設置,具體的設置方案也沒有詳細給出,可能自己也是在學習過程中。可能給大家的幫助也不是很多,當然我們可以多交流,共同進步。自己能力有限,有錯的地方,大家可以後臺留言指出,或加群進行討論

為了大家更好的學習交流,DataCharm的學習交流群已經建立,由於群的二維碼連接易失效,可以通過掃面下方二維碼,添加本人微信,做自我介紹啊,要不然我都不知道是誰。我拉你入群。

相關焦點

  • python使用matplotlib畫動態圖
    matplotlib是python的核心繪圖庫,是python的一個開源項目,旨在為python提供一個繪圖庫。matplotlib與numpy組合是一種可行的matlab替代方案。在可視化中matplotlib是最常使用的工具,是對數據整體判斷、效果預測不可或缺的重要模塊。下面我們就來聊一聊如何使用matplotlib繪製一個二維動態圖。
  • SCI論文配色-matplotlib分類柱狀圖繪製
    (這種配色真的適合發sci論文)在使用ggplot2進行這類圖表顏色繪製時,直接調用ggsci包就可以進行顏色設計(Matplotlib在這點上還存在明顯不足啊但抱怨歸抱怨,接下來還是使用python-matplotlib 對上圖進行仿製。
  • Matplotlib的安裝與繪圖
    一般屬於數據的預處理和清洗完成之後,多會把數據按照橫坐標縱坐標進行繪圖,利用人工檢查數據的使用情況 Matplotlib
  • Python-matplotlib: 圖表手繪風
    matplotlib.pyplot.xkcd()簡介這個Matplotlib子函數特別簡單,只有三個參數,別看參數少,但功能可不小matplotlib.pyplot.xkcd(scale=1, #相對於不使用xkcd的風格圖,褶皺的幅度
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。可是你了解過它繪圖的核心原理嗎?
  • 一本書掌握Python強大的繪圖庫Matplotlib
    它是一個多功能且功能強大的庫,可讓您設計非常高質量的圖形,適用於科學出版。它還提供了一個簡單直觀的界面以及一個面向對象的架構,允許您調整圖形中的任何內容。import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.textpath import
  • Python Matplotlib 入門教程:如何控制Matplotlib樣式
    來自:https://www.linuxmi.com/matplotlib-yangshi.html在本篇Python Matplotlib
  • 創造生動有趣的動畫,Matplotlib庫大顯身手
    此圖由Matplotlib繪圖庫繪製而成,該繪圖庫常常被認為是python可視化數據包的原始數據組。Matplotlib通過50個分散點的比例和不透明度來模擬雨滴落在平面上的情景。如今,Plotly、Bokeh、Altair等一系列可視化工具均為Python中強大的可視化工具。這些庫可實現最先進的動畫和交互動作。但是,本文重點在於研究資料庫的一個方面——動畫。同時,我們也將關注實現動畫的方法。
  • 還在對Matplotlib繁瑣的圖層設置感到煩惱!?快來看看這個Python繪圖工具包吧
    是不是被matplotlib繁瑣繪圖屬性設置搞得一臉懵?是不是因常常記不住某一個圖層設置函數而被迫看又長又枯燥的API文檔?又或者是不是在面對多個matplotlib子圖時寫了大量的循環代碼來設置屬性?最後還是不是希望只精通一個Python繪圖包就可以把二維、空間等類型圖表繪製方法都掌握??
  • Matplotlib--上帝打翻了調色板
    同樣在圖形中,我們也可以運用matplotlib工具包,繪製斑斕的圖像。此次本文將從matplotlib的繪圖樣式和色彩設置兩個方面來對圖像的形式講解,重點在於色彩的應用。但是有時候,當用戶在做專題報告時,往往會希望保持整體風格的統一而不用對每張圖一張張修改,因此Matplotlib庫還提供了四種批量修改全局樣式的方式1.Matplotlib預先定義樣式Matplotlib貼心地提供了許多內置的樣式供用戶使用,使用方法很簡單,只需在python腳本的最開始輸入想使用style的名稱即可調用,嘗試調用不同內置樣式,比較區別
  • PyCharm安裝matplotlib教程——安裝好matplotlib但是import報錯
    輸入python -m pip install -U pip setuptools2.輸入python -m pip install matplotlib3.檢查是否已經安裝成功輸入python -m pip list成功安裝。默認安裝在D:\Python\Lib\site-packages方式二:通過下載matplotlib進行安裝。
  • Python-Matplotlib: 極坐標圖形
    風玫瑰圖風玫瑰圖就是極坐標系下的堆積分組柱形圖, 這裡定義1個函數,返回繪圖對象和刻度坐標及標籤。使用時,提取刻度坐標和標籤就行了,繪圖對象使用_進行列印。# 繪圖from matplotlib import tickerimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 設定默認字體為SimHei以解決中文顯示亂碼問題fig = plt.figure(figsize=(5, 6), dpi=100) # 設置解析度和尺寸大小ax = fig.add_subplot
  • Python-matplotlib 多子圖共用colorbar
    在繪製多子圖共用colorbar時,最重要的就是對顏色映射進行設置,這裡使用了matplotlib.color.Normalize()進行顏色和數值對應設置。先看一下使用默認設置的結果,每個子圖對應一個colorbar。
  • Matplotlib二維和三維繪圖細解
    本節提要:關於m
  • python可視化之matplotlib庫餅形圖的基本用法與應用實例
    實驗環境:已正確安裝python3.5、matplotlib1、餅形圖概念餅狀圖顯示一個整體中各項大小佔總體的百分比,可以清楚反應部分與總體的關係。在餅形圖上標出百分比為了在平面上觀察各項的比例,可以設置x與y的比例為1進行觀察。利用axes方法創建或激活軸,aspect為一個數字時,表示屏幕空間中y與x之比。
  • python數據分析【三】matplotlib常用圖案例
    python是一個包容性、開放性很強的語言,因此matplotlib模塊亦是如此,例如上面的兔子便是以python 畫的。你可以隨心所欲的在上面塗塗畫畫,如果你的審美比較與眾不同,你也可以使用像R語言的ggplot2的畫圖風格。本文將介紹一些簡便常用的圖形並對應介紹它可以使用的場景。
  • Python氣象數據處理與繪圖:Python繪圖如何自定義或使用NCL中的colormap
    提供的colormap不夠豐富,本文介紹Matplotlib的自帶色板,並介紹Python繪圖如何使用NCL中的colormap,甚至自定義色板(比如使用氣象家園調色盤生成的色板)。mod=viewthread&tid=43521其基本原理就是讀取NCL色板的.rgb文件,將其信息轉換為顏色數組,形成matplotlib色板。那麼下面,我就根據這個思路,解釋下其過程和原理。
  • Python-Matplotlib 動態曲線圖繪製
    引言動態曲線圖不同於動態氣泡圖,它可以查看部分指標在一段時間內的變化趨勢,本期推文將推出動態曲線圖的 Matplotlib 繪製過程,核心過程為 折線圖 和 散點圖 的繪製,詳細過程如下:02.這裡需要注意的是zorder屬性的設置,這裡設置zorder=4,表示散點圖繪製在折線圖之後,即散點圖壓在折線圖之上,使繪圖更加美觀。
  • Python 繪圖,我只用 Matplotlib
    圖1-1 散點圖示例使用Matplotlib的scatter()函數繪製散點圖,其中x和y是相同長度的數組序列。scatter()函數的一般用法為:主要參數說明如下:x,y:數組。s:散點圖中點的大小,可選。c:散點圖中點的顏色,可選。 marker:散點圖的形狀,可選。alpha:表示透明度,在 0~1 取值,可選。
  • Python中matplotlib的顏色及線條參數控制示例
    Python畫圖的時候選色選點都可以直接參考這裡的內容,matplotlib中有哪些命名顏色可供用於繪圖?