從零開始學Python數據分析【14】-- matplotlib(折線圖)

2021-12-29 Python愛好者社區

作者:劉順祥

個人微信公眾號:每天進步一點點2015

前文傳送門:

從零開始學Python數據分析【1】--數據類型及結構

從零開始學Python數據分析【2】-- 數值計算及正則表達式

從零開始學Python數據分析【3】-- 控制流與自定義函數

從零開始學Python數據分析【4】-- numpy

從零開始學Python數據分析【5】-- pandas(序列部分)

從零開始學Python數據分析【6】-- pandas(數據框部分01)

從零開始學Python數據分析【7】-- pandas(數據框部分02)

從零開始學Python數據分析【8】-- pandas(數據框部分03)

從零開始學Python數據分析【9】-- pandas(數據框部分04)

從零開始學Python數據分析【10】-- matplotlib(條形圖)

從零開始學Python數據分析【11】-- matplotlib(餅圖)

從零開始學Python數據分析【12】-- matplotlib(箱線圖)

從零開始學Python數據分析【13】-- matplotlib(直方圖)

前言

       我們接著上一期matplotlib繪圖內容,講解一下關於折線圖的繪製,折線圖一般是用來表示某個數值變量隨著時間的推移而形成的趨勢,這種圖還是比較常見的,如經濟走勢圖、銷售波動圖、PV監控圖等。在Python的matplotlib模塊中,我們可以調用plot函數就能實現折線圖的繪製了,先來看看這個函數的一些參數含義。

plot函數的參數解讀

       matplotlib模塊中plot函數語法及參數含義:

plt.hist(x,y,linestyle,        linewidth,color,marker,        markersize,markeredgecolor,        markerfactcolor,label,alpha)

一元折線圖的繪製

案例:每天進步一點點2015公眾號文章閱讀人數

# 導入模塊
import pandas as pd
import matplotlib.pyplot as plt

# 設置繪圖風格
plt.style.use('ggplot')
# 設置中文編碼和負號的正常顯示
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False

# 讀取需要繪圖的數據
article_reading = pd.read_excel('wechart.xlsx')
# 取出8月份至9月28日的數據
sub_data = article_reading.loc[article_reading.date >= '2017-08-01' ,:]

# 設置圖框的大小
fig = plt.figure(figsize=(10,6))
# 繪圖
plt.plot(sub_data.date, # x軸數據         sub_data.article_reading_cnts, # y軸數據         linestyle = '-', # 折線類型         linewidth = 2, # 折線寬度         color = 'steelblue', # 折線顏色         marker = 'o', # 點的形狀         markersize = 6, # 點的大小         markeredgecolor='black', # 點的邊框色         markerfacecolor='brown') # 點的填充色

# 添加標題和坐標軸標籤
plt.title('公眾號每天閱讀人數趨勢圖')plt.xlabel('日期')plt.ylabel('人數')

# 剔除圖框上邊界和右邊界的刻度
plt.tick_params(top = 'off', right = 'off')

# 為了避免x軸日期刻度標籤的重疊,設置x軸刻度自動展現,並且45度傾斜
fig.autofmt_xdate(rotation = 45)

# 顯示圖形
plt.show()

       由於x軸是日期型數據,當數據量一多的時候,就會導致刻度標籤的重疊或擁擠,為了防止重疊的產生,我們需要讓日期型的x軸刻度標籤自動展現,從而避免重疊的現象。下面兩幅圖是對比自動刻度標籤的前後變化:

       可能你並不滿足這樣的刻度標籤展現形式,你想以個性化的展現方式,如「YYYY-MM-DD」的顯示方式,同時又想以固定的幾天作為間隔,這樣的設置又該如何實現?其實非常的簡單,只需要在上面代碼的基礎上添加幾行代碼就可以輕鬆搞定。

一元折線圖的繪製—圖形優化

# 導入模塊
import matplotlib as mpl

# 設置圖框的大小
fig = plt.figure(figsize=(10,6))
# 繪圖
plt.plot(sub_data.date, # x軸數據         sub_data.article_reading_cnts, # y軸數據         linestyle = '-', # 折線類型         linewidth = 2, # 折線寬度         color = 'steelblue', # 折線顏色         marker = 'o', # 點的形狀         markersize = 6, # 點的大小         markeredgecolor='black', # 點的邊框色         markerfacecolor='steelblue') # 點的填充色

# 添加標題和坐標軸標籤
plt.title('公眾號每天閱讀人數趨勢圖')plt.xlabel('日期')plt.ylabel('人數')

# 剔除圖框上邊界和右邊界的刻度
plt.tick_params(top = 'off', right = 'off')

# 獲取圖的坐標信息
ax = plt.gca()
# 設置日期的顯示格式  
date_format = mpl.dates.DateFormatter("%Y-%m-%d")  ax.xaxis.set_major_formatter(date_format) # 設置x軸顯示多少個日期刻度
#xlocator = mpl.ticker.LinearLocator(10)
# 設置x軸每個刻度的間隔天數
xlocator = mpl.ticker.MultipleLocator(5)ax.xaxis.set_major_locator(xlocator)

# 為了避免x軸日期刻度標籤的重疊,設置x軸刻度自動展現,並且45度傾斜
fig.autofmt_xdate(rotation = 45)

# 顯示圖形
plt.show()

多元折線圖的繪製

       如果你需要在一張圖形中畫上兩條折線圖,也很簡單,只需要在代碼中寫入兩次plot函數即可,其他都不需要改動了。具體可以參考下面的代碼邏輯:

# 設置圖框的大小
fig = plt.figure(figsize=(10,6))

# 繪圖--閱讀人數趨勢
plt.plot(sub_data.date, # x軸數據         sub_data.article_reading_cnts, # y軸數據         linestyle = '-', # 折線類型         linewidth = 2, # 折線寬度         color = 'steelblue', # 折線顏色         marker = 'o', # 點的形狀         markersize = 6, # 點的大小         markeredgecolor='black', # 點的邊框色         markerfacecolor='steelblue', # 點的填充色         label = '閱讀人數') # 添加標籤

# 繪圖--閱讀人次趨勢
plt.plot(sub_data.date, # x軸數據         sub_data.article_reading_times, # y軸數據         linestyle = '-', # 折線類型         linewidth = 2, # 折線寬度         color = '#ff9999', # 折線顏色         marker = 'o', # 點的形狀         markersize = 6, # 點的大小         markeredgecolor='black', # 點的邊框色         markerfacecolor='#ff9999', # 點的填充色         label = '閱讀人次') # 添加標籤

# 添加標題和坐標軸標籤
plt.title('公眾號每天閱讀人數和人次趨勢圖')plt.xlabel('日期')plt.ylabel('人數')

# 剔除圖框上邊界和右邊界的刻度
plt.tick_params(top = 'off', right = 'off')

# 獲取圖的坐標信息
ax = plt.gca()
# 設置日期的顯示格式  
date_format = mpl.dates.DateFormatter('%m-%d')  ax.xaxis.set_major_formatter(date_format) # 設置x軸顯示多少個日期刻度
#xlocator = mpl.ticker.LinearLocator(10)
# 設置x軸每個刻度的間隔天數
xlocator = mpl.ticker.MultipleLocator(3)ax.xaxis.set_major_locator(xlocator)

# 為了避免x軸日期刻度標籤的重疊,設置x軸刻度自動展現,並且45度傾斜
fig.autofmt_xdate(rotation = 45)

# 顯示圖例
plt.legend()
# 顯示圖形
plt.show()

兩條折線圖很完美的展現在一張圖中,公眾號的閱讀人數與人次趨勢完全一致,而且具有一定的周期性,即過幾天就會有一個大幅上升的波動,這個主要是由於雙休日的時候,時間比較空閒,就可以更新並推送文章了。

結語

       OK,今天關於Pyhton繪製折線圖的講解就到此結束,如果你感興趣,不妨和我一起學習與交流,同時也歡迎各位朋友繼續轉發與分享,讓系統的知識不斷的擴散出去。下一期我們將推送散點圖的繪製。文中相關的Python腳本和PDF版本已存放到百度雲盤,可以通過下面的連結獲取:

連結: https://pan.baidu.com/s/1geX2RiN 密碼: wnr3

Python愛好者社區歷史文章大合集

Python愛好者社區歷史文章列表(每周append更新一次)

福利:文末掃碼立刻關注公眾號,「Python愛好者社區」,開始學習Python課程:

關注後在公眾號內回復課程即可獲取:

0.小編的Python入門視頻課程!!!

1.崔老師爬蟲實戰案例免費學習視頻。

2.丘老師數據科學入門指導免費學習視頻。

3.陳老師數據分析報告製作免費學習視頻。

4.玩轉大數據分析!Spark2.X+Python 精華實戰課程免費學習視頻。

5.丘老師Python網絡爬蟲實戰免費學習視頻。

相關焦點

  • 從零開始學Python數據分析【16】-- matplotlib(雷達圖)
    作者:劉順祥個人微信公眾號:每天進步一點點2015前文傳送門:從零開始學Python數據分析
  • 從零開始學Python數據分析【15】-- matplotlib(散點圖)
    作者:劉順祥個人微信公眾號:每天進步一點點2015前文傳送門:從零開始學Python數據分析
  • 從零開始學Python【16】--matplotlib(雷達圖)
    (含爬蟲代碼)從零開始學Python【15】--matplotlib(散點圖)從零開始學Python【14】--matplotlib(折線圖)從零開始學Python【13】--matplotlib(直方圖)從零開始學Python【12】--matplotlib(箱線圖)從零開始學Python
  • Python 數據分析:Matplotlib 繪圖
    簡介Matplotlib 是 Python 提供的一個繪圖庫,通過該庫我們可以很容易的繪製出折線圖、直方圖、散點圖、餅圖等豐富的統計圖,安裝使用 pip install matplotlib 命令即可,Matplotlib 經常會與 NumPy 一起使用。
  • 從零開始學Python【13】--matplotlib(直方圖)
    hist函數的參數解讀       繪圖之前,我們先來講解一下matplotlib包中hist函數的參數含義及使用方法:plt.hist(x, bins=10, range=None, normed=False,        weights=None, cumulative=False, bottom=None,        histtype='bar', align
  • 見識matplotlib:不常見的一面,折線圖!
    眾所周知,matplotlib是python繪圖的基礎包,能夠生成各種各樣2D或者3D的圖形,用法算是多而全的那種,下邊是matplotlib官網首頁作為例子的幾張圖,大家感受一下:什麼?醜拒?不不不,別激動!其實matplotlib一直是一個低調奢華有內涵的包,需要我們透過它樸實無華的外表認清它豐富多彩的內在,來康康這條妖嬈的曲線,有沒有感受到它的召喚?
  • Python數據分析之matplotlib作圖
    繪製簡單的折線圖下面我們來使用前面介紹過的matplotlib庫繪製一個簡單的折線圖,再對其進行定製,以實現信息更豐富的數據可視化,我們將使用平方數序列1、4、9、16和25來繪製這個圖表。只需向matplotlib提供如下數字,matplotlib就能完成其他的工作:我們首先導入了模塊pyplot,並給它指定了別名plt,以免反覆輸入pyplot。在線示例大都能夠這樣做,我們在這裡也採取這種方法。模塊pyplot包含了很多用於生成圖表的函數。
  • 從零開始學Python數據分析【21】--線性回歸(實戰部分)
    從零開始學Python數據分析【1】--數據類型及結構從零開始學Python數據分析【2】-- 數值計算及正則表達式從零開始學Python數據分析【3】-- 控制流與自定義函數從零開始學Python數據分析【4】-- numpy從零開始學Python數據分析【5】-- pandas(序列部分)從零開始學Python數據分析
  • 從零開始學Python數據分析【27】--Logistic回歸(實戰部分)
    作者:劉順祥個人微信公眾號:每天進步一點點2015前文傳送門:從零開始學Python數據分析
  • 從零開始學Python數據分析【25】--嶺回歸及LASSO回歸(實戰部分)
    作者:劉順祥個人微信公眾號:每天進步一點點2015前文傳送門:從零開始學Python數據分析
  • matplotlib庫繪製折線圖、子圖及條形圖
    前面幾節我們學習了python中numpy和pandas庫的一些常用操作,接下來幾個章節,我們學習一個非常重要的數據可視化庫matplotlib(seaborn庫也有有所涉及)。這裡我們需要知道,matplotlib庫主要繪製一些2D圖形和簡單的3D圖形。
  • Python數據分析案例 | Matplotlib圖像繪製
    2、案例(1)用戶分析,表格 user_analysisimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'
  • Python可視化:學會Matplotlib這幾點就夠了!
    python分析可視化展示,對於日常的分析中主要用到餅圖、折線圖、直方圖基本能滿足一般的分析可視化呈現。1、可視化直方圖舉例import matplotlib.pyplot as pltplt.rcParams['font.family']='Arial Unicode MS' #中文顯示plt.plot([3,1,4,5,2]) #基礎數據實現折線圖plt.ylabel('縱軸(值)')
  • 從零開始學Python數據分析【22】--線性回歸診斷(第一部分)
    從零開始學Python數據分析【1】--數據類型及結構從零開始學Python數據分析【2】-- 數值計算及正則表達式從零開始學Python數據分析【3】-- 控制流與自定義函數從零開始學Python數據分析【4】-- numpy從零開始學Python數據分析【5】-- pandas(序列部分)從零開始學Python數據分析
  • python數據科學系列:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • Matplotlib圖鑑|進階折線圖10-12
    首先導入相關庫並查看版本import matplotlibprint(matplotlib.__version__) #查看Matplotlib版本import pandas as pdprint(pd.
  • Python數據分析利器:matplotlib超詳細基礎介紹!!!
    ,會讓你的數據分析等工作錦上添花,讓人印(升)象(職)深(加)刻(薪)。matplotlib是python優秀的數據可視化庫,python數據分析必備利器,本文專門為你整理了matplotlib詳細使用方法,來學習吧!--- 以下是正文 ---數據可視化非常重要,因為錯誤或不充分的數據表示方法可能會毀掉原本很出色的數據分析工作。
  • 【數據分析】Matplotlib
    Matplotlib是一個強大的Python繪圖和數據可視化的工具包。數據可視化也是我們數據分析的最重要的工作之一,可以幫助我們完成很多操作,例如:找出異常值、必要的一些數據轉換等。完成數據分析的最終結果也許就是做一個可交互的數據可視化。
  • python:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • 數據可視化|matplotlib 的主要組成元素
    >matplotlib 是 Python 中的一個繪圖庫,具有可定製性強、圖表資源豐富等特點,既能創建靜態圖形,也能創建動態交互的數據可視化效果;既能創建 2D 圖形,也能創建 3D 圖形;既能創建常見的簡單圖形,也能創建統計學專業的複雜圖形。ma