Matplotlib繪圖專案(三):北京2016年3,10月份每天白天的最高氣溫隨時間變化情況
阿新 • • 發佈:2018-11-21
需求:
- 繪製北京2016年3,10月份每天白天的最高氣溫隨時間(天)變化的散點圖,並找出規律
難點:
- 散點圖語法
- 繪製兩邊分散式x軸座標
# 資料來源:天氣網 http://lishi.tianqi.com/beijing/index.html
import matplotlib.pyplot as plt
# 3月份和10月份每天白天氣溫情況
a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
b = [26 ,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
# 作為x軸的時間天數
x = range(1,32)
plt.figure(figsize = (20, 8), dpi = 80)
# # x軸都一樣,重疊在一起就沒意義了
plt.scatter(x, a)
plt.scatter(x, b)
#展示
plt.show()
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = [ 'SimHei']
plt.rcParams['axes.unicode_minus'] = False
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
x_3 = range(1,32)
# 為了在x軸上區分開
x_10 = range(51,82)
#設定圖形大小
plt.figure(figsize=(20,8),dpi=80)
#使用scatter方法繪製散點圖,和之前繪製折線圖的唯一區別
plt.scatter(x_3,y_3,label=u"3月份", linewidth = 5 )
plt.scatter(x_10,y_10,label=u"10月份", linewidth = 5)
#調整x軸的刻度
# 注意: 不能直接range(1,82),因為中間還差數,所以list+
_x = list(x_3)+list(x_10)
_xtick_labels = [u"3月{}日".format(i) for i in x_3]
# 因為從51開始的, -50就行了
_xtick_labels += [u"10月{}日".format(i-50) for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3], rotation=45)
#新增圖例
plt.legend(loc="upper left")
#新增描述資訊
plt.xlabel(u"時間")
plt.ylabel(u"溫度")
plt.title(u"北京2016年3,10月份每天白天的最高氣溫隨時間(天)變化情況")
# plt.grid() 散點圖加網格線不美觀
#展示
plt.show()
# 大致規律:3月份氣溫隨著時間增加而增加;10月份氣溫隨著時間增加而遞減