matplotlib learning-----案例:顯示溫度變化狀況(2)
阿新 • • 發佈:2018-12-18
""" 案例:顯示溫度變化狀況 需求:畫出某城市11點到12點1小時內每分鐘的溫度變化折線圖,溫度範圍在15度~18度 """ import random import matplotlib.pyplot as plt # plt 用於顯示圖片 # 準備x, y座標的資料 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] # 增加北京的溫度資料 y_beijing = [random.uniform(1, 3) for j in x] # 1)建立畫布 # plt.figure(figsize=(20, 8), dpi=80) fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80) # 2)繪製折線圖 # plt.plot(x, y_shanghai) # plt.plot(x, y_shanghai, label="上海") axes[0].plot(x, y_shanghai, label="上海") # 使用多次plot可以畫多個折線 # plt.plot(x, y_beijing, color='r', linestyle='--', label="北京") axes[1].plot(x, y_beijing, color='r', linestyle='--', label="北京") # 顯示圖例 # plt.legend(loc="best") axes[0].legend() axes[1].legend() # 增加以下兩行程式碼 # 構造x軸刻度標籤 x_ticks_label = ["11點{}分".format(i) for i in x] # 構造y軸刻度 y_ticks = range(40) # 修改x,y軸座標的刻度顯示 # plt.xticks(x[::5], x_ticks_label[::5]) # plt.yticks(y_ticks[::5]) axes[0].set_xticks(x[::5], x_ticks_label[::5]) axes[0].set_yticks(y_ticks[::5]) axes[1].set_xticks(x[::5], x_ticks_label[::5]) axes[1].set_yticks(y_ticks[::5]) # 新增網格顯示 # plt.grid(True, linestyle='--', alpha=0.5) axes[0].grid(True, linestyle='--', alpha=0.5) axes[1].grid(True, linestyle='--', alpha=0.5) # 新增x軸、y軸描述資訊及標題 # plt.xlabel("時間") # plt.ylabel("溫度") # plt.title("中午11點0分到12點之間的溫度變化圖示") axes[0].set_xlabel("時間") axes[0].set_ylabel("溫度") axes[0].set_title("上海中午11點0分到12點之間的溫度變化圖示") axes[1].set_xlabel("時間") axes[1].set_ylabel("溫度") axes[1].set_title("北京中午11點0分到12點之間的溫度變化圖示") # 3)顯示影象 plt.show()