SCI論文配色-matplotlib分類柱狀圖繪製

2021-02-24 DataCharm
今天在查看資料時,看見一篇SCI論文的配圖十分搶眼,圖表的整體繪製不是很難,但整個配色還是瞬間讓圖表「高大上」起來,如下:

(這種配色真的適合發sci論文)

在使用ggplot2進行這類圖表顏色繪製時,直接調用ggsci包就可以進行顏色設計(Matplotlib在這點上還存在明顯不足啊)。但抱怨歸抱怨,接下來還是使用python-matplotlib 對上圖進行仿製。python-matplotlib 繪製分類柱狀圖的步驟相對比較簡單,即ax.bar()的靈活使用即可,下面為沒有任何定製化繪製的默認繪製代碼:
import numpy as npimport matplotlib.pyplot as plt
plt.rcParams['font.family'] = "Times New Roman"
labels = ['L1', 'L2', 'L3', 'L4', 'L5']data_a = [20, 34, 30, 35, 27]data_b = [25, 32, 34, 20, 25]data_c = [12, 20, 24, 17, 16]
x = np.arange(len(labels))width = .25fig,ax = plt.subplots(figsize=(5,3),dpi=200)bar_a = ax.bar(x-width/2, data_a,width,label='category_A')bar_b = ax.bar(x+width/2, data_b, width,label='category_B')bar_c = ax.bar(x+width*3/2, data_c,width,label='category_C')ax.set_xticks(x+.1)ax.set_xticklabels(labels,size=10)ax.legend() text_font = {'size':'14','weight':'bold','color':'black'}ax.text(.03,.93,"(a)",transform = ax.transAxes,fontdict=text_font,zorder=4)ax.text(.87,-.08,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 5,color='black',fontweight='bold',family='Roboto Mono')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\學術圖表繪製\bar_class_prior.png',width=5,height=3, dpi=900,bbox_inches='tight')plt.show()

可以看出,默認的matplotlib的配色真的是·······,接下來,我們通過定製化繪製使其看起來舒服同時也符合SCI期刊配色要求。我們使用 FastStone Capture 軟體對所需顏色進行吸取,然後對刻度、軸脊梁、字體等進行設計,具體代碼如下:
labels = ['L1', 'L2', 'L3', 'L4', 'L5']data_a = [20, 34, 30, 35, 27]data_b = [25, 32, 34, 20, 25]data_c = [12, 20, 24, 17, 16]
x = np.arange(len(labels))width = .25
plt.rcParams['font.family'] = "Times New Roman"fig,ax = plt.subplots(figsize=(5,3),dpi=200)bar_a = ax.bar(x-width/2, data_a,width,label='category_A',color='#130074',ec='black',lw=.5)bar_b = ax.bar(x+width/2, data_b, width,label='category_B',color='#CB181B',ec='black',lw=.5)bar_c = ax.bar(x+width*3/2, data_c,width,label='category_C',color='white',ec='black',lw=.5)
ax.tick_params(axis='x',direction='in',bottom=False)ax.tick_params(axis='y',direction='out',labelsize=8,length=3)ax.set_xticks(x+1)ax.set_xticklabels(labels,size=10)ax.set_ylim(bottom=0,top=40)ax.set_yticks(np.arange(0, 50, step=5))
for spine in ['top','right']: ax.spines[spine].set_color('none') ax.legend(fontsize=7,frameon=False)
text_font = {'size':'14','weight':'bold','color':'black'}ax.text(.03,.93,"(a)",transform = ax.transAxes,fontdict=text_font,zorder=4)ax.text(.87,-.08,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 5,color='black',fontweight='bold',family='Roboto Mono')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\學術圖表繪製\bar_class.png',width=5,height=3, dpi=900,bbox_inches='tight')plt.show()

是不是瞬間高大上了,肯定會有小夥伴問了,我不知道SCI顏色具體怎麼設置啊?不是有ggsci包和 FastStone Capture軟體嗎?誰讓matplotlib在這方面還沒有很好的顏色包呢。接下來,我們直接選擇Science色系的前三個顏色代碼直接填充我們構造的數據,更改代碼也是只單單的一行,如下:
bar_c = ax.bar(x+width*3/2, data_c,width,label='category_C',color='#008B45',ec='black',lw=.5)

此外,我們還添加了網格線,感覺還不錯,效果如下:

本期的推文整體上很簡單(很多小夥伴希望推出些基礎、實用的繪圖教程)主要還是學術圖表的繪製,這裡使用了比較適合SCI論文的顏色搭配。還是希望能夠幫助大家,無論是商業圖表還是學術圖表,當然了,如果大家有知道matplotlib比較優秀的配圖包,也可以後臺留言或者直接進群討論啊!!

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

相關焦點

  • Matplotlib可視化菜鳥教程
    ', '69FFFF']) 語句實現簡單改配色,具體關於mpl.rcParams後面再展開。堆疊柱狀圖繪製調節width參數使得柱和柱之間的寬度為0,並對數據進行統計在畫圖,可以用ax.bar()繪製直方圖,但也不需要這麼複雜,Matplotlib提供了繪製直方圖的接口ax.hist(x,bins,normed
  • Matplotlib的安裝與繪圖
    就是繪圖的主要工具 Matplotlib的安裝 pip --default-time=10000 install matplotlib繪製簡單的曲線 import matplotlib.pyplot as plt#簡單的曲線plt.plot([1,2,3
  • Python Matplotlib 入門教程:如何控制Matplotlib樣式
    來自:https://www.linuxmi.com/matplotlib-yangshi.html在本篇Python Matplotlib
  • Python 繪圖,我只用 Matplotlib
    圖1-1 散點圖示例使用Matplotlib的scatter()函數繪製散點圖,其中x和y是相同長度的數組序列。scatter()函數的一般用法為:主要參數說明如下:x,y:數組。s:散點圖中點的大小,可選。c:散點圖中點的顏色,可選。 marker:散點圖的形狀,可選。alpha:表示透明度,在 0~1 取值,可選。
  • matplotlib中文顯示之圖表大全
    全局支持中文顯示以及指定局部中文顯示https://aistudio.baidu.com/aistudio/projectdetail/390895使用中還有問題可以在論壇中提出(你的問題可能大家已經討論過了)https://ai.baidu.com/forum/topic/show/958873考慮到部分同學對matplotlib本身不是太熟悉
  • Python-matplotlib 商業圖表繪製01
    在繪製學術圖表之餘,我們也會進行商業圖表的繪製,畢竟學術圖表的配色有點單調和嚴謹啊。
  • Python-matplotlib雙Y軸可視化繪製
    這裡我就直接給出Python-matplotlib繪製方法和R-ggplot2的繪製方法,主要的知識點如下:Matplotlib-Axes.twinx()方法添加副軸Matplotlib-Axes.twinx()方法添加副軸這裡我們直接就給出數據預覽和可視化設計的代碼,圖中部分代碼我們再做詳細解釋,數據預覽如下
  • 還在對Matplotlib繁瑣的圖層設置感到煩惱!?快來看看這個Python繪圖工具包吧
    是不是被matplotlib繁瑣繪圖屬性設置搞得一臉懵?是不是因常常記不住某一個圖層設置函數而被迫看又長又枯燥的API文檔?又或者是不是在面對多個matplotlib子圖時寫了大量的循環代碼來設置屬性?最後還是不是希望只精通一個Python繪圖包就可以把二維、空間等類型圖表繪製方法都掌握??
  • matplotlib繪圖的核心原理講解
    最後,張三就是在分配好的不同區域上進行圖形繪製了,在一張畫布上,畫的最多的應該就是2D圖,也可以畫3D圖,如圖所示,張三在區域一畫了一個小狗,在區域二畫了一個小貓,在區域三畫了一個光頭強。對比到matplotlib中,我們在axes1中畫了一個條形圖,在axes2中畫了一個餅圖,在axes3中畫了一個折線圖。
  • python使用matplotlib畫動態圖
    matplotlib是python的核心繪圖庫,是python的一個開源項目,旨在為python提供一個繪圖庫。matplotlib與numpy組合是一種可行的matlab替代方案。在可視化中matplotlib是最常使用的工具,是對數據整體判斷、效果預測不可或缺的重要模塊。下面我們就來聊一聊如何使用matplotlib繪製一個二維動態圖。
  • Python-matplotlib: 圖表手繪風
    matplotlib.pyplot.xkcd()簡介這個Matplotlib子函數特別簡單,只有三個參數,別看參數少,但功能可不小matplotlib.pyplot.xkcd(scale=1, #相對於不使用xkcd的風格圖,褶皺的幅度
  • Python-Matplotlib 動態曲線圖繪製
    引言動態曲線圖不同於動態氣泡圖,它可以查看部分指標在一段時間內的變化趨勢,本期推文將推出動態曲線圖的 Matplotlib 繪製過程,核心過程為 折線圖 和 散點圖 的繪製,詳細過程如下:02.數據可視化動態圖表的繪製主要在於折線圖和散點圖的繪製,我們採用的依舊還是面向對象式繪圖方式,這裡建議繪製較為複雜的圖表時多採用此方法進行繪製。
  • Matplotlib--上帝打翻了調色板
    同樣在圖形中,我們也可以運用matplotlib工具包,繪製斑斕的圖像。此次本文將從matplotlib的繪圖樣式和色彩設置兩個方面來對圖像的形式講解,重點在於色彩的應用。Matplotlib的繪圖樣式(style)在Matplotlib中,要想設置繪製樣式,最簡單的方法是在繪製元素時單獨設置樣式。
  • Python大數據分析疫情:如何實現實時數據爬取及Matplotlib可視化
    Matplotlib繪製全國各地區柱狀圖首先,我們調用Matplotlib繪製全國各地區的確診人數柱狀圖,幫助大家回憶其基本用法。40#------------------------------------------------------------------------------41import matplotlib.pyplot as plt 42import numpy as np43
  • 不再羨慕別人的漂亮圖表,一文學會如何用Python繪製堆積圖
    如果用Python進行繪製圖表,大家會如何操作呢?相信肯定會用到matplotlib庫,作為Python專業的二維和三維可視化庫之一,matplotlib庫是目前Python進行數據可視化最為常用的庫。
  • Python-matplotlib 多子圖共用colorbar
    繪製教程後,有小夥伴反應能否出一篇多子圖共用一個colorbar的系列教程,這裡也就使用自己的數據進行繪製(數據一共四列,具體為真實值和使用三個模型計算的預測值)。在繪製多子圖共用colorbar時,最重要的就是對顏色映射進行設置,這裡使用了matplotlib.color.Normalize()進行顏色和數值對應設置。先看一下使用默認設置的結果,每個子圖對應一個colorbar。
  • 創造生動有趣的動畫,Matplotlib庫大顯身手
    此圖由Matplotlib繪圖庫繪製而成,該繪圖庫常常被認為是python可視化數據包的原始數據組。Matplotlib通過50個分散點的比例和不透明度來模擬雨滴落在平面上的情景。如今,Plotly、Bokeh、Altair等一系列可視化工具均為Python中強大的可視化工具。這些庫可實現最先進的動畫和交互動作。但是,本文重點在於研究資料庫的一個方面——動畫。同時,我們也將關注實現動畫的方法。
  • Python-matplotlib 繪圖配色設計
    2.1 默認圖表這裡首先設置一組數據,使用matplotlib的默認繪製方法進行圖表繪製,具體數據如下:array([10, 25, 12, 15, 28, 13, 20, 26, 23, 40, 39, 35, 42, 31, 29, 16, 27], dtype=int64)
  • 簡潔優雅的Matplotlib數據可視化(二)-- 繪製線形圖
    在Python腳本中繪製線形圖,我們首先需要進行一系列基礎操作——調用程序包、設置繪圖樣式、創建圖形和坐標軸。此外,根據需要設置圖形標籤和圖例,並記住在腳本末尾顯示圖形(plt.show)。註:小夥伴們也可以直接複製上期推送結尾的案例,這個案例的主要用途是作為今後畫圖的模板。1.
  • python可視化之matplotlib庫餅形圖的基本用法與應用實例
    實驗環境:已正確安裝python3.5、matplotlib1、餅形圖概念餅狀圖顯示一個整體中各項大小佔總體的百分比,可以清楚反應部分與總體的關係。在餅形圖上標出百分比為了在平面上觀察各項的比例,可以設置x與y的比例為1進行觀察。利用axes方法創建或激活軸,aspect為一個數字時,表示屏幕空間中y與x之比。