1. 程式人生 > >matplotlib learning-----案例:顯示溫度變化狀況(2)

matplotlib learning-----案例:顯示溫度變化狀況(2)

"""
    案例:顯示溫度變化狀況
    需求:畫出某城市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()