天天看點

python3 資料可視化Matplotlib庫詳解

Matplotlib詳解

    • 1.搭建Matplotlib環境
        • 1.1.使用pip下載下傳Matplotlib
        • 1.2.使用easy_install下載下傳Matplotlib
        • 1.3.在網站上下載下傳Matplotlib
    • 2.繪制兩個點
    • 3.繪制折線圖
        • 3.1.普通折線圖
        • 3.2.調整線條粗細
    • 4.在圖中添加注釋
    • 5.修改表的坐标
    • 6.繪制兩條線條
    • 7.線條、顔色和标記
        • 7.1.常用的顔色
        • 7.2.常用的線條
        • 7.3.标記
    • 8.圖例

1.搭建Matplotlib環境

1.1.使用pip下載下傳Matplotlib

Matplotlib可以使用pip下載下傳:

pip install matplotlib
           

下載下傳過慢可以使用國内鏡像:

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
           

還可以使用:

python -m pip install matplotlib
           

如果第三種下載下傳方式報錯,說明你還沒有将python設為環境變量,可以使用第1、2種方法替代。

1.2.使用easy_install下載下傳Matplotlib

easy_install matplotlib
           

1.3.在網站上下載下傳Matplotlib

上述兩種方法都比較簡單,但是如果在使用過程中,可能會不支援python的部分版本,這時我們可以去 PyPi 下載下傳,點傳入連結接後會看到matplotlib·PyPi頁面:

注意 :以上連接配接如無法打開,請在浏覽器裡輸入網址https://pypi.org/project/matplotlib

python3 資料可視化Matplotlib庫詳解

點選左下角的 Download files 會看到右側有一些版本号:

python3 資料可視化Matplotlib庫詳解

在這裡面找到你需要的版本。

下載下傳完成後打開cmd,輸入:

python -m pip install --user 版本号
           

上述的版本号是你在下載下傳Matplotlib的時候的版本号,比如說我下的是“matplotlib-3.2.2-cp39-cp39-win_amd64.whl”,那麼我就需要輸入:

python -m pip install --user matplotlib-3.2.2-cp39-cp39-win_amd64.whl
           

2.繪制兩個點

我們可以使用scatter()函數來繪制兩個點,它的參數是點坐标的位置(x和y),傳入的是一個清單。

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

x1 = [1, 2] # 設定第一個點的坐标,x坐标是2,y坐标是1
y2 = [2, 4] # 設定第二個點的坐标,x坐标是1,y坐标是2
plt.scatter(x1, y2) # 繪制散點圖

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

3.繪制折線圖

通過plot()函數繪制折線圖,參數是折線圖每一個點所在的y坐标

3.1.普通折線圖

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.plot([8, 7, 9 ,3, 5, 3, 7, 9]) # 繪制折線圖

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

3.2.調整線條粗細

通過plot()的linewidth參數來調整線條粗細:

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.plot([8, 7, 9 ,3, 5, 3, 7, 9], linewidth = 10) # 繪制折線圖

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

4.在圖中添加注釋

title()函數添加标題,xlabel()函數,ylabel()函數。以上三個函數中fontsize參數可以調整字型

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt


plt.plot([50, 70, 90 ,80, 55, 39, 79, 90], linewidth = 10) # 繪制折線圖
plt.title("title", fontsize = 25)
plt.xlabel("y", fontsize = 15)
plt.ylabel("x", fontsize = 15)

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

注意:如果需要顯示中文字型,需要加上

plt.rcParams['font.sans-serif']=['SimHei'] #這裡使用的是雅黑字型
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
           

運作結果

python3 資料可視化Matplotlib庫詳解

5.修改表的坐标

可以在plot函數線條坐标的前面傳入一個清單,代表x坐标的值:

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90], linewidth = 10) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

6.繪制兩條線條

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90],
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],
         linewidth = 10,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

7.線條、顔色和标記

7.1.常用的顔色

如果需要設定顔色,可以在plot函數裡面設定,常用的顔色有:

顔色字元 顔色說明
b 藍色
c 青色
k 黑色
r 紅色
y 黃色
g 綠色

執行個體

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90],"b",
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"g",
         linewidth = 10,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

7.2.常用的線條

注意:此處是和顔色寫在一個字元串内,寫在顔色後面

字元 說明
- 直線
虛線(兩個-)
-. 虛點線
: 點線

執行個體

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,80, 55, 39, 79, 90],"b-.",
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"g--",
         linewidth = 10,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

7.3.标記

注意:标記是寫線上條後面

符号 說明
. 點标記
o 圓标記
s 方形标記
p 五角星标記
+ 加号标記
- 減号标記

執行個體

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号

plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 70, 90 ,70, 55, 39, 79, 90],"-s",
         ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"-o",
         linewidth = 3,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)

plt.show() # 顯示繪圖
           

運作結果

python3 資料可視化Matplotlib庫詳解

8.圖例

雖然前面建立的清單已經很好了,但是缺乏每一根線條的意義是以我們需要建立圖例:

代碼部分

import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号

line1 = plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
         [50, 90, 90 ,70, 55, 39, 79, 90],"-s", label = "1号超市") # 繪制折線圖
line2 = plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
         [40, 80, 60, 80, 70, 20, 90, 50],"-o", label = "2号超市")
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.legend(loc = "best")

plt.show() # 顯示繪圖
           

執行結果

python3 資料可視化Matplotlib庫詳解

其中它的loc參數是指圖例的位置,best是圖中最好的位置,也就是沒有值的位置,loc參數的可選值如下:

可選值 說明
best 最好的位置
upper right 右上角
upper left 左上角
lower left 左下角
lower right 右下角
center left 左側
center right 右側
lower center 下面
upper center 上面
center 畫面正中間