數據分析學習之matplotlib折線圖

各種統計圖的特點和用途

在這裏插入圖片描述
在這裏插入圖片描述

什麼是matplotlib

最流行的python底層繪圖庫,主要做數據可視化圖表,名字取材於MATLAB,模仿MATLIB構建

爲什麼要學習matplotlib

  1. 能將數據進行可視化,更直觀的呈現
  2. 使數據更加客觀、更具說服力

matplotlib基本要點

安裝matplotlib:pip install matplotlib
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

from matplotlib import pyplot as plt

x = range(2,26,2)
y = [15,13,14.5,17,20,22,24,25,26,26,18,15]

#設置圖片大小,並且設置dpi參數使圖片更清晰
plt.figure(figsize=(15,8),dpi=80)
#繪圖
plt.plot(x,y)

#繪製x軸的刻度
plt.xticks(x)
# plt.xticks(range(2,26))
# plt.xticks(x[::3]) #設置步長

#繪製y軸的刻度
plt.yticks(range(min(y),max(y)+1))

#保存
# plt.savefig('./t1.png')

#展示
plt.show()

練習題1
在這裏插入圖片描述

# 如果列表a表示10點到12點的每一分鐘的氣溫, 如何繪製折線圖觀察每分鐘氣溫的變化情況?
# a = [random.randint(20, 35) for i in range(120)]
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager

#設置字體的方式
my_font = font_manager.FontProperties(fname='ziti.ttf')

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軸的刻度
_x = list(x)
_xtick_labels = ["10點{}分".format(i) for i in range(60)]
_xtick_labels += ["11點{}分".format(i) for i in range(60)]
#取步長,數字和字符串要求一一對應,數據的長度才能一樣
#把數值型數據對應到字符串數據上
plt.xticks(_x[::3],_xtick_labels[::3],rotation=45,fontproperties=my_font) #rotation旋轉的度數爲90度
# plt.xticks(_x[::3],_xtick_labels[::3],rotation=45) #rotation旋轉的度數爲90度

#添加描述信息
plt.xlabel("時間",fontproperties=my_font) #x軸描述信息
plt.ylabel("溫度 單位℃",fontproperties=my_font) #y軸描述信息
plt.title("十點到十二點每分鐘的溫度變化情況",fontproperties=my_font) #標題

plt.show()

在這裏插入圖片描述
練習題2

# 假設大家在30歲的時候,根據自己的實際情況,統計出來了從11歲到30歲每年交的女(男)朋友的數量如列表a,請繪製出該數據的折線圖,
# 以便分析自己每年交女(男)朋友的數量走勢
# a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
# 要求:
#     y軸表示個數
#     x軸表示歲數,比如11歲,12歲等

from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname='ziti.ttf')
x = range(11,31)
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]


#設置圖形大小
plt.figure(figsize=(15,8),dpi=80)
#繪圖
plt.plot(x,y)

#設置刻度
_x_labels = ["{}歲".format(i) for i in x]
plt.xticks(list(x)[::1],_x_labels[::1],fontproperties=my_font)
#添加描述信息
plt.xlabel("歲數",fontproperties=my_font)
plt.ylabel("交往的個數",fontproperties=my_font)
plt.title("11歲到30歲每年交往的走勢",fontproperties=my_font)
#繪製網格
plt.grid(alpha=0.4) #alpha設置透明度

plt.show()

在這裏插入圖片描述
在這裏插入圖片描述

# 假設大家在30歲的時候,根據自己的實際情況,統計出來了從11歲到30歲每年交的女(男)朋友的數量如列表a,請繪製出該數據的折線圖,
# 以便分析自己每年交女(男)朋友的數量走勢
# a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
# 要求:
#     y軸表示個數
#     x軸表示歲數,比如11歲,12歲等

from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname='ziti.ttf')
x = range(11,31)
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]


#設置圖形大小
plt.figure(figsize=(15,8),dpi=80)
#繪圖
plt.plot(x,y1,label='自己')
plt.plot(x,y2,label='同桌',linestyle='--') #線條風格爲虛線

#設置刻度
_x_labels = ["{}歲".format(i) for i in x]
plt.xticks(list(x)[::1],_x_labels[::1],fontproperties=my_font)
#添加描述信息
plt.xlabel("歲數",fontproperties=my_font)
plt.ylabel("交往的個數",fontproperties=my_font)
plt.title("11歲到30歲每年交往的走勢",fontproperties=my_font)
#繪製網格
plt.grid(alpha=0.4) #alpha設置透明度

#添加圖例
plt.legend(prop=my_font,loc='best') #顯示中文

plt.show()

調整圖例的位置
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章