首頁 > 軟體

Python資料分析matplotlib折線圖案例處理

2022-08-16 18:02:36

前言

以下分享折線圖小案例,matplotlib還可以進行多種圖形的繪製,可以進入官網 https://matplotlib.org/gallery/index.html點選examples,如需學習,選擇要學習的圖進入,裡面包含有程式碼

python之matplotlib使用系統字型

1.導包from matplotlib.font_manager import FontProperties2.呼叫本機字型庫設定字型my_font=font_manager.FontProperties(fname="C:WindowsFontsmsyh.ttc")

其中,msyh.ttc是自己電腦中的字型,如何找到呢?

在路徑C:WindowsFonts的資料夾中,有如下字型,如下圖:

繪圖的時候,直接呼叫就好

​plt.xticks(list(x)[::3],_xtick_labels[::3],rotatinotallow=45,fnotallow=my_font)​

範例1:溫度變化統計

#如果列表a便是10點到12點的每一分鐘的氣溫,繪製折線圖
# a=[random.randint(20,35)for i in range(120)]
#解決中文不顯示問題
#fc-list -->檢視支援的字型
#fc-list :lang=zh -->檢視支援的中文(冒號前有空格)

from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager

#1.windowslinux設定字型
#font = {'family' : 'MicroSoft YaHei',
# 'weight' : 'bold',
# 'size' : 'larger'}
#matplotlib.rc("font",**font) #檢視原始碼ctrl+b

#2.另一種設定字型方式
my_font=font_manager.FontProperties(fname="C:WindowsFontsmsyh.ttc")

#定義x、y軸
x = range(0,120)
y = [random.randint(20,35) for i in range(120)]

#修改大小尺寸
plt.figure(figsize=(20,8),dpi=80)

#繪製
plt.plot(x,y)

#調整x軸的刻度
_xtick_labels = ["10點{}分".format(i) for i in range(60)]
_xtick_labels += ["11點{}分".format(i) for i in range(60)]

#取適當步長,將數位與x軸字串對應,使得資料長度保持一致
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45,fontproperties=my_font) #將x軸字串旋轉45度

#新增描述資訊
plt.xlabel("時間",fontproperties=my_font)
plt.ylabel("溫度 單位(°c)",fontproperties=my_font)
plt.title("10點到12點每分鐘的氣溫變化情況",fontproperties=my_font)

#顯示圖示
plt.show()

範例2:交友數量折線圖

#你與朋友從11到30歲交的朋友數,並比較
from matplotlib import pyplot as plt
from matplotlib import font_manager

#設定字型
my_font=font_manager.FontProperties(fname="C:WindowsFontsmsyh.ttc")

#定義座標軸
x = range(11,31)
y_1 = [2,3,3,4,6,5,6,5,8,5,4,6,4,4,4,4,4,3,3,3]
y_2 = [1,4,5,5,6,4,5,5,4,7,6,5,3,2,2,6,1,2,6,4]

#設定圖形大小
plt.figure(figsize=(20,8),dpi=80)

#繪製
plt.plot(x,y_1)
plt.plot(x,y_2)

#繪製xy軸刻度,新增描述資訊
_xtick_labels = ["{}歲".format(i) for i in x]
plt.xticks(x,_xtick_labels,fontproperties=my_font)
plt.yticks(range(0,10))
plt.xlabel("年齡",fontproperties=my_font)
plt.ylabel("每年交到的新朋友數",fontproperties=my_font)
plt.title("與朋友每年新交到朋友數量對比圖",fontproperties=my_font)

#繪製網格,並設定透明度
plt.grid(alpha=0.3)

#展示
plt.show()

1.這個案例中涉及到一表多圖,其實很簡單,與單圖設計一樣,只要再新增一組y軸座標。
這裡x軸是共有的,不需要另行設定。
#定義座標軸​x = range(11,31)y_1 = [2,3,3,4,6,5,6,5,8,5,4,6,4,4,4,4,4,3,3,3]y_2 = [1,4,5,5,6,4,5,5,4,7,6,5,3,2,2,6,1,2,6,4]#繪製plt.plot(x,y_1)plt.plot(x,y_2)

2.繪製網格及設定透明度

plt.grid(alpha=0.3)

3.但是當你給別人展示時,並沒有原始碼,別人很難分清哪個曲線是你的,哪個是你朋友的,這時就需要我們新增圖例,並且要注意的是:

通常我們設定中文字型是對應方法後新增fontproperties=my_font但是在新增圖例中用到的是prop=my_font

如圖所示:

4.更改圖例位置

由於初學,很多方法我們還不是很清楚,所以我們要學會檢視原始碼(選中方法名+ctrl+b)

再使用一次,進入後會找到有關引數loc(location)的描述,我們設定loc=“upper left”,結果如圖所示

5.設定曲線顏色,線條樣式

#繪製,新增顏色
plt.plot(x,y_1,label="自己",color="y")
plt.plot(x,y_2,label="朋友",color="cyan")

#繪製,新增線條型別
plt.plot(x,y_1,label="自己",color="purple",linestyle='-.')
plt.plot(x,y_2,label="朋友",color="cyan",linestyle='--')

到此這篇關於Python資料分析matplotlib折線圖案例處理的文章就介紹到這了,更多相關Python matplotlib折線圖 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com