1. 程式人生 > >Matplotlib繪圖專案(二):不同年齡階段女朋友個數變化情況

Matplotlib繪圖專案(二):不同年齡階段女朋友個數變化情況

需求:
  • 繪製不同年齡階段女朋友個數變化情況
難點:
  • 同一張圖中折線增加為兩條
  • 繪製圖例
  • 繪製網格線
終圖:

在這裡插入圖片描述

第一部分程式碼如下:

from matplotlib import pyplot as plt

# 設定中文能正常顯示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# x軸年齡
x = range(11, 31) # 20個,x軸與y軸資料一一對應

# y軸女朋友個數
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

# 設定影象大小,清晰度
plt.figure(figsize = (20, 8), dpi = 80)

# 聯立
plt.plot(x, y)

# 設定x軸刻度:中文字串
_xtick_labels = [u'{}歲'.format(i) for i in x ]
plt.xticks(x, _xtick_labels)

# 想把y軸拉長點,本身峰值是到6
plt.yticks(range(0,9))

# 新增x軸y軸描述
plt.xlabel(u'年齡')
plt.ylabel(u'物件個數')

# 網格線的深淺
plt.grid(alpha = 0.5) 

plt.show()

在這裡插入圖片描述

第二部分程式碼如下:

x = range(11, 31) # 20個,x軸與y軸資料一一對應

# y軸女朋友個數增加一條折線的資料
y_m = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_r = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]

# 設定影象大小,清晰度
plt.figure(figsize = (20, 8), dpi = 100)

# 注意:漢字前面不加u也可以,真奇怪....
plt.plot(x, y_m, label = '狗明', color = 'orange', linestyle = ':', linewidth = 5, alpha = 0.8)
plt.plot(x, y_r, label = '秀瑞', color = 'blue', linestyle = '-',  linewidth = 5, alpha = 0.8)

_xtick_labels = [u'{}歲'.format(i) for i in x ]
plt.xticks(x, _xtick_labels)

# 想把y軸拉長點,本身峰值是到6
plt.yticks(range(0,9))

plt.xlabel(u'年齡')
plt.ylabel(u'物件個數')
plt.title('狗明與秀瑞在11-30歲之間交女朋友個數折線圖')

# 網格線的深淺
plt.grid(alpha = 0.5) 

# 將圖例的位置設定在左上角
plt.legend(loc = 'upper left')

# 儲存圖片在桌面
plt.savefig('C:/Users/shuol/Desktop/p1')

plt.show()

在這裡插入圖片描述