Python數據分析matplotlib折線圖案例處理

前言

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

python之matplotlib使用系統字體

1.導包from matplotlib.font_manager import FontProperties2.調用本機字體庫設置字體my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")

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

在路徑C:\Windows\Fonts的文件夾中,有如下字體,如下圖:

繪圖的時候,直接調用就好

​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.windows\linux設置字體
#font = {'family' : 'MicroSoft YaHei',
# 'weight' : 'bold',
# 'size' : 'larger'}
#matplotlib.rc("font",**font) #查看源碼ctrl+b

#2.另一種設置字體方式
my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.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:\Windows\Fonts\msyh.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)

#繪制x\y軸刻度,添加描述信息
_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")

2

#繪制,添加線條類型
plt.plot(x,y_1,label="自己",color="purple",linestyle='-.')
plt.plot(x,y_2,label="朋友",color="cyan",linestyle='--')

到此這篇關於Python數據分析matplotlib折線圖案例處理的文章就介紹到這瞭,更多相關Python matplotlib折線圖 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: