小白學 Python 數據分析(17):Matplotlib(二)基礎操作


人生苦短,我用 Python

前文傳送門:

小白學 Python 數據分析(1):數據分析基礎

小白學 Python 數據分析(2):Pandas (一)概述

小白學 Python 數據分析(3):Pandas (二)數據結構 Series

小白學 Python 數據分析(4):Pandas (三)數據結構 DataFrame

小白學 Python 數據分析(5):Pandas (四)基礎操作(1)查看數據

小白學 Python 數據分析(6):Pandas (五)基礎操作(2)數據選擇

小白學 Python 數據分析(7):Pandas (六)數據導入

小白學 Python 數據分析(8):Pandas (七)數據預處理

小白學 Python 數據分析(9):Pandas (八)數據預處理(2)

小白學 Python 數據分析(10):Pandas (九)數據運算

小白學 Python 數據分析(11):Pandas (十)數據分組

小白學 Python 數據分析(12):Pandas (十一)數據透視表(pivot_table)

小白學 Python 數據分析(13):Pandas (十二)數據表拼接

小白學 Python 數據分析(14):Pandas (十三)數據導出

小白學 Python 數據分析(15):數據可視化概述

小白學 Python 數據分析(16):Matplotlib(一)坐標系

坐標軸標題設置

各位同學好,我又來了,本文給大家帶來的是有關 Matplotlib 的一些基礎操作。

在前一篇文章中,我們介紹了如何使用 Matplotlib 繪制坐標系,本文我們接着介紹 Matplotlib 。

先看一個簡單的示例:

import matplotlib.pyplot as plt

x_data = ['2011','2012','2013','2014','2015','2016','2017']
y_data = [58000,60200,63000,71000,84000,90500,107000]

plt.xlabel('年份')
plt.ylabel('銷量')

plt.plot(x_data, y_data)

plt.show()

結果如下:

好像哪里不太對的樣子,橫軸和數軸的標題沒有顯示出來,看一下程序運行,沒有報錯,但是報出來一個警告:

RuntimeWarning: Glyph 24180 missing from current font.

這個警告的含義是 plt 畫圖是找不到字體,那么這里我們手動設置一下字體:

plt.rcParams['font.sans-serif']=['SimHei']

完整的樣例代碼如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = ['2011','2012','2013','2014','2015','2016','2017']
y_data = [58000,60200,63000,71000,84000,90500,107000]

plt.xlabel('年份')
plt.ylabel('銷量')

plt.plot(x_data, y_data)

plt.show()

結果如下:

這下顯示正常了。

我們還可以通過參數 labelpad 設置標題到坐標軸的距離,這里為了演示效果設置的距離稍微大了點:

plt.xlabel('年份', labelpad=50)
plt.ylabel('銷量', labelpad=50)

結果如下:

我們還可以通過參數對文本的相關屬性進行設置,下面看下一些常用的設置參數:

plt.xlabel('年份', labelpad=50, fontsize='xx-large', fontweight='bold', rotation='vertical', backgroundcolor='red')
plt.ylabel('銷量', labelpad=50)

先看結果:

xlabel 中常用的一些參數:

  • fontsize : 設置字體大小,默認12,可選參數 ['xx-small', 'x-small', 'small', 'medium', 'large','x-large', 'xx-large']
  • fontweight : 設置字體粗細,可選參數 ['light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black']
  • fontstyle : 設置字體類型,可選參數[ 'normal' | 'italic' | 'oblique' ],italic斜體,oblique傾斜
  • verticalalignment : 設置水平對齊方式 ,可選參數 : 'center' , 'top' , 'bottom' ,'baseline'
  • horizontalalignment : 設置垂直對齊方式,可選參數:left,right,center
  • rotation : (旋轉角度)可選參數為:vertical,horizontal 也可以為數字
  • alpha : 透明度,參數值0至1之間
  • backgroundcolor : 標題背景顏色
  • bbox : 給標題增加外框 ,常用參數如下:
    • boxstyle 方框外形
    • facecolor (簡寫fc)背景顏色
    • edgecolor (簡寫ec)邊框線條顏色
    • edgewidth 邊框線條大小

刻度設置

默認坐標軸是顯示 x y 的值,但是也可以自定義顯示不同的刻度,這里需要使用到的函數為 xticksyticks 兩個函數:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000]

plt.xticks(x_data, ['2011年','2012年','2013年','2014年','2015年','2016年','2017年'])
plt.yticks(y_data)

plt.plot(x_data, y_data)

plt.show()

結果如下:

有些時候,由於數據脫敏的需要,我們不要顯示刻度,還可以這么寫:

plt.xticks(x_data, [])
plt.yticks(y_data, [])

這樣展現出來的圖形如下:

實際上,我們還有更狠的操作,直接關閉坐標軸:

plt.axis("off")

結果如下:

范圍設置

我們還可以對坐標軸的范圍進行設置,如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000]

plt.xlim(2011, 2020)
plt.ylim(50000, 90000)

plt.plot(x_data, y_data)

plt.show()

結果如下:

這里設置在 Y 軸上最大值為 90000 ,那么 2016 和 2017 對應的數據將會無法顯示,實際我們從得出的結果圖上也能看出這一點。

網格線設置

網格線默認是關閉的,我們可以通過函數 grid 修改參數 b 來開啟網格線,如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000]

plt.plot(x_data, y_data)

plt.grid(b=True)

plt.show()

結果如下:

我們不僅可開啟網格線,還可以通過參數 axis 來控制是開啟哪個軸的網格線:

# 開啟 x 軸網格線
plt.grid(b=True, axis='x')
# 開啟 y 軸網格線
plt.grid(b=True, axis='y')

圖例設置

圖例能對圖表起到注釋的作用,我們可以通過參數 label 對該圖表的圖例進行設置,示例如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000]

plt.plot(x_data, y_data, label = '折線圖')
plt.bar(x_data, y_data, label = '柱狀圖')

plt.legend()

plt.show()

結果如下:

圖表標題設置

圖表標題是用來概括整張圖表現的內容的,我們可以通過如下方式設置一張圖的標題:

plt.title(label='xxx 公司 xxx 產品銷量')

結果如下:

本文的內容就到這里了,下一篇我們介紹 Matplotlib 的常用圖表的示例,本文的示例代碼寫的有點亂,就不貼出來了,當然,如果經常看小編寫的文章的估計都找得到。

參考

https://blog.csdn.net/The_Time_Runner/article/details/89927708


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM