簡潔優雅的Matplotlib數據可視化(二)-- 繪製線形圖

2021-03-02 交通科研Lab

在上一期的推送中,舉了一個很簡單的線形圖例子——繪製sin和cos曲線。在這一期,我們將系統地講解線形圖和散點圖的畫法。

同樣地,會在結尾放一個詳細的Python畫圖實戰案例哦,喜歡的小夥伴請收藏、轉發、關注吧!

在所有圖形中,最基本的應該就是線性方程y=f(x)的可視化了。

在Python腳本中繪製線形圖,我們首先需要進行一系列基礎操作——調用程序包、設置繪圖樣式、創建圖形和坐標軸。此外,根據需要設置圖形標籤和圖例,並記住在腳本末尾顯示圖形(plt.show)。

註:小夥伴們也可以直接複製上期推送結尾的案例,這個案例的主要用途是作為今後畫圖的模板。

1.  x = np.linspace(0, 12, 121)  

2.  plt.plot(x, np.sin(x))  

其中,plt.plot()函數的括號中有兩項,第一項是線性方程y=f(x)中的「x」,第二項是f(x)的方程,這個方程的代碼寫法通常與程序包Numpy有關。

在方程比較複雜、或方程比較長的情況下,也可以用定義f(x)的方法,如下:

1.  x = np.linspace(0, 12, 121)  

2.  y = np.sin(x)  

3.  plt.plot(x, y)  

兩種代碼繪製線形圖的結果相同:

簡單介紹完如何使用plt.plot()函數,我們再來講一下如何定義x,這與plt.plot()的原理有關。plt.plot()的原理類似於微元法,是繪製一系列該方程曲線上的點,再用圓滑的曲線將這些點連接。

其中,函數np.linspace()是等差數列函數,np.linspace(a,b,c)的含義是在[a,b]區間上,取均勻地取間隔相等的c個點。因此在上一個例子中,[0,12]是圖片中x的定義域,x每增長1,曲線上就增加10個點。c值應選取合適的值,過小的c值會使線形圖變成折線,過大的c會增大系統運算量。下圖為不同c值的繪圖效果。

可以通過在plt.plot()函數中設置參數來改變線條的顏色與風格。要修改顏色,也可以用color參數,它支持各種顏色的字符串。顏色的不同表示方法如下所示:

1.  # 設置線條的顏色與風格  

2.  # 標準顏色名稱  

3.  plt.plot(x, np.sin(x - 0), color = 'blue')  

4.  # 縮寫顏色代碼(rgbcmyk)  

5.  plt.plot(x, np.sin(x - 1), color = 'g')  

6.  # 範圍在0-1的灰度值  

7.  plt.plot(x, np.sin(x - 2), color = '0.75')  

8.  # 十六進位(RRGGBB,00-FF)  

9.  plt.plot(x, np.sin(x - 3), color = '#FFDD44')  

10.# GRB元組,範圍在0-1  

11.plt.plot(x, np.sin(x - 4), color = (1.0, 0.2, 0.3))  

12.# HTML顏色名稱  

13.plt.plot(x, np.sin(x - 5), color = 'chartreuse')  

如果不指定顏色,Matplotlib就會為多條線自動循環使用一組默認的顏色。

與顏色的調整類似,也可以用linestyle調整線條的風格。

1.  #  設置線條的風格  

2.  plt.plot(x, x + 0, linestyle = '-')   # 實線  

3.  plt.plot(x, x + 1, linestyle = '--')  # 虛線  

4.  plt.plot(x, x + 2, linestyle = '-.')  # 點劃線  

5.  plt.plot(x, x + 3, linestyle = ':')   # 實點線  

可以用一種更簡潔的方式,將color與linestyle編碼組合起來,作為plt.plot()函數中的一個非關鍵字參數使用。

1.  #  設置線條的顏色與風格  

2.  plt.plot(x, x + 0, '-g')   # 綠色實線  

3.  plt.plot(x, x + 1, '--c')  # 青色虛線  

4.  plt.plot(x, x + 2, '-.k')  # 黑色點劃線  

5.  plt.plot(x, x + 3, ':r')   # 紅色實點線  

經過上述繪製線形圖的講解,相信聰明的小夥伴已經掌握畫線形圖的基本技巧了。所以今天的案例難度升級,實用性也更為強大。

案例包含了很多新的知識點:

調整線條的寬度。

話不多說,代碼奉上:

1.  # 調用包  

2.  import matplotlib as mpl  

3.  import matplotlib.pyplot as plt  

4.  import pandas as pd  

5.    

6.  # 用Pandas讀取csv格式的文件  

7.  sj = pd.read_csv('BMpl.csv')  

8.    

9.  # 提取文件中的數據  

10.x = sj['DATE']  

11.BB = sj['B-B']  

12.BM = sj['B-M']  

13.MB = sj['M-B']  

14.  

15.# 創建圖像  

16.fig = plt.figure()  

17.  

18.# 繪製累計頻率曲線  

19.plt.plot(x,BB,'-k',linewidth = 1)  

20.plt.plot(x,BM,'--k',linewidth = 1)  

21.plt.plot(x,MB,':k',linewidth = 1)  

22.  

23.# 設置題目與坐標軸名稱  

24.plt.title('cumulative frequency curve chart')  

25.plt.ylabel('Cumulative frequency curve')  

26.plt.xlabel('Time(min)') 

27.  

28.# 設置圖例(置於右下方)  

29.plt.legend(loc='lower right')  

30.  

31.# 顯示圖片  

32.plt.show()

文件『BMpl.csv』中儲存的數據樣例。(三組累計頻率曲線)

以上就是本期繪製線形圖的全部內容啦!後面的幾期會繼續更新其他常用圖表的畫法,和交通學子常用的畫圖代碼。歡迎有需要的小夥伴關注、收藏、轉發吧~

如果覺得還不錯

點這裡👇👇👇

相關焦點

  • Python-matplotlib雙Y軸可視化繪製
    這裡我就直接給出Python-matplotlib繪製方法和R-ggplot2的繪製方法,主要的知識點如下:Matplotlib-Axes.twinx()方法添加副軸Matplotlib-Axes.twinx()方法添加副軸這裡我們直接就給出數據預覽和可視化設計的代碼,圖中部分代碼我們再做詳細解釋,數據預覽如下
  • Matplotlib可視化菜鳥教程
    Matplotlib是基礎而非常強大的可視化庫,Seaborn等好用的可視化庫是在前者的基礎上進行的封裝。Matplotlib擅長快速出簡單的圖、有豐富的接口進行精細化繪圖、和Numpy結合做科學可視化及三維圖配合默契、三維圖。但也有些缺點,如不容易基於實用目的繪製有一定難度的圖表(如小提琴圖等)、標籤等元素需指定坐標而不能自適應優化顯示、難以實現交互。
  • 數據可視化:Matplotlib vs ggplot2
    呈現一個看起來像5歲小孩的東西已經不再是一個選擇,所以數據科學家需要一個有吸引力和簡單易用的數據可視化庫。今天我們將比較其中的兩個-Matplotlib和ggplot2。為什麼是這兩個?Matplotlib是我學習的第一個可視化庫。
  • 簡潔優雅的Matplotlib數據可視化 -- 高級配置方法(上)
    案例中用到的數據是每隔五分鐘統計的地鐵進站量。import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npimport pandas as pdplt.style.use('seaborn-notebook')fig = plt.figure()ax
  • Matplotlib--上帝打翻了調色板
    同樣在圖形中,我們也可以運用matplotlib工具包,繪製斑斕的圖像。此次本文將從matplotlib的繪圖樣式和色彩設置兩個方面來對圖像的形式講解,重點在於色彩的應用。Matplotlib的繪圖樣式(style)在Matplotlib中,要想設置繪製樣式,最簡單的方法是在繪製元素時單獨設置樣式。
  • python使用matplotlib畫動態圖
    matplotlib是python的核心繪圖庫,是python的一個開源項目,旨在為python提供一個繪圖庫。matplotlib與numpy組合是一種可行的matlab替代方案。在可視化中matplotlib是最常使用的工具,是對數據整體判斷、效果預測不可或缺的重要模塊。下面我們就來聊一聊如何使用matplotlib繪製一個二維動態圖。
  • Python大數據分析疫情:如何實現實時數據爬取及Matplotlib可視化
    第一篇文章將分享騰訊疫情實時數據抓取,獲取全國各地和貴州省各地區的實時數據,並將數據存儲至本地,最後調用Maplotlib和Seaborn繪製中國各地區、貴州省各城市、新增人數的圖形。希望這篇可視化分析文章對您有所幫助,也非常感謝參考文獻中老師的分享,一起加油,戰勝疫情!
  • Python-matplotlib: 圖表手繪風
    matplotlib.pyplot.xkcd()簡介這個Matplotlib子函數特別簡單,只有三個參數,別看參數少,但功能可不小matplotlib.pyplot.xkcd(scale=1, #相對於不使用xkcd的風格圖,褶皺的幅度
  • Python-Matplotlib 動態曲線圖繪製
    引言動態曲線圖不同於動態氣泡圖,它可以查看部分指標在一段時間內的變化趨勢,本期推文將推出動態曲線圖的 Matplotlib 繪製過程,核心過程為 折線圖 和 散點圖 的繪製,詳細過程如下:02.上述數據為本次繪製動態曲線圖所需數據,即從 gapminder 網站下載的平均個人收入(Income per person)數據整理而成,處理代碼主要如下:這裡 eq(nation) 操作為提取自己所需數據,最後通過 pandas 的 concat() 操縱進行提取數據合併即可。03.
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。可是你了解過它繪圖的核心原理嗎?
  • 創造生動有趣的動畫,Matplotlib庫大顯身手
    在描述像過去幾年的股票價格、過去十年的氣候變化、季節性和趨勢等時間序列數據時,與靜態圖相比,動畫更能說明問題。因為,從動畫中,我們可以看到特定參數是如何隨時間而變化的。上圖是模擬雨的圖像。此圖由Matplotlib繪圖庫繪製而成,該繪圖庫常常被認為是python可視化數據包的原始數據組。Matplotlib通過50個分散點的比例和不透明度來模擬雨滴落在平面上的情景。
  • Python數據可視化實例之繪製圖表
    Python數據可視化實例之繪製圖表原創 蟲蟲安全 2018-09-05 17:41:57得利於語言的簡單明了、豐富的數據結構、豐富的類和模塊,Python如今成了數據科學中的香餑餑,成了matlab、R語言之外又一強大的數據分析工具。拋開其他方面的、今天蟲蟲帶大家一起來探索Python在數據可視化方面的應用。
  • Python-matplotlib 多子圖共用colorbar
    繪製教程後,有小夥伴反應能否出一篇多子圖共用一個colorbar的系列教程,這裡也就使用自己的數據進行繪製(數據一共四列,具體為真實值和使用三個模型計算的預測值)。在繪製多子圖共用colorbar時,最重要的就是對顏色映射進行設置,這裡使用了matplotlib.color.Normalize()進行顏色和數值對應設置。先看一下使用默認設置的結果,每個子圖對應一個colorbar。
  • Matplotlib數據可視化:餅圖與箱線圖
    from matplotlib import pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParams['font.sans-serif'] = ['SimHei']  # 中文字體支持1 餅圖-pie()1.1 pie
  • Matplotlib的安裝與繪圖
    一般屬於數據的預處理和清洗完成之後,多會把數據按照橫坐標縱坐標進行繪圖,利用人工檢查數據的使用情況 Matplotlib
  • Python Matplotlib 入門教程:如何控制Matplotlib樣式
    來自:https://www.linuxmi.com/matplotlib-yangshi.html在本篇Python Matplotlib
  • SCI論文配色-matplotlib分類柱狀圖繪製
    )在使用ggplot2進行這類圖表顏色繪製時,直接調用ggsci包就可以進行顏色設計(Matplotlib在這點上還存在明顯不足啊但抱怨歸抱怨,接下來還是使用python-matplotlib 對上圖進行仿製。
  • Python-matplotlib 商業圖表繪製01
    在繪製學術圖表之餘,我們也會進行商業圖表的繪製,畢竟學術圖表的配色有點單調和嚴謹啊。
  • 50個令人大開眼界的 Matplotlib 可視化項目
    收錄於話題 #可視化時間序列分解圖(Time Series Decomposition Plot)
  • 想用Python做數據可視化?先邁過這個「坎」
    python的人都會面臨一個問題,尤其是初學者:我應該選哪個來實現數據可視化? 以下就是將要用來創建繪製數據的示例: ·Pandas ·Seaborn ·Ggplot 在示例中,我將使用pandas進行數據處理並使用它來完成可視化的效果。