一、相關知識點
二、plot
from pylab import mpl
# 設置顯示中文字體
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 設置正常顯示符號
mpl.rcParams["axes.unicode_minus"] = False
#%%#%%
import matplotlib.pyplot as plt
import random# 畫出溫度的變化圖# 1. 準備x y坐標的數據
x = range(60)
y_shanghai = [random.uniform(13, 15) for i in x] # 上海溫度
y_beijing = [random.uniform(1, 6) for j in x] # 北京溫度
# random.uniform(15,18) 這個函數返回的是15,18之間的隨機浮點數
# 利用了列表推導式# 1. 創建畫布
plt.figure(figsize=(20,10),dpi=90)# 2.繪制折線圖
plt.plot(x,y_shanghai,color="b",linestyle= "--",label="上海")
plt.plot(x,y_beijing,color="r",linestyle="--",label="北京") #linestyle="--" 虛線
# 增加以下代碼 增加刻度
# 構造x軸的刻度標簽
x_ticks_label = ["11點{}分".format(i) for i in x]
# 修改x軸的刻度、標簽
plt.xticks(x[::5],x_ticks_label[::5],rotation=45)
# 修改y軸的刻度
y_ticks = range(40)
plt.yticks(y_ticks[::5])plt.xlabel("時間",fontsize = 30)
plt.ylabel("溫度",fontsize = 30)plt.grid(True, linestyle='--', alpha=0.3, color='gray') # 使用灰色網格# 保存圖片到指定路徑
plt.savefig("test.png")
plt.legend(loc="best")plt.tight_layout()
#3. 圖像顯示
plt.show()
三、subplot
import numpy as np
import matplotlib.pyplot as plt
import random# 圖像風格模仿ggplot
plt.style.use('ggplot')import matplotlib
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 使用黑體
plt.rcParams['axes.unicode_minus'] = False # 解決負號顯示問題
#%%# 圖像風格模仿ggplot
plt.style.use('ggplot')# 生成數據
x = np.linspace(0,59,60)
y_shanghai = [random.uniform(13, 15) for i in x] # 上海溫度
y_beijing = [random.uniform(1, 6) for j in x] # 北京溫度#%%# 創建一個畫布和兩個子圖
fig, axes = plt.subplots(2, 1, figsize=(10, 7), sharex=True)
axes = axes.flatten()# 定義x_ticks_label,y_ticks
x_ticks_label = ["11點{}分".format(i) for i in x]y_ticks = range(20)
# 繪制上海溫度折線圖
axes[0].plot(x, y_shanghai, c='r', label='上海',marker='o', linestyle='--')
# 繪制北京溫度折線圖
axes[1].plot(x, y_beijing, c='b', label='北京',marker='^', linestyle='-')
for ax in axes:print(ax)ax.set_ylabel("溫度", fontsize=12)ax.grid(True, linestyle='--', alpha=0.3, color='gray') # 使用灰色網格# 注意刻度和刻度標簽是不一樣的ax.set_xticks(x[::5]) # 每隔5分鐘顯示一個刻度ax.set_xticklabels(x_ticks_label[::5], rotation=40) # 設置x軸刻度標簽ax.set_yticks(y_ticks[::5])ax.set_xlabel("日期",fontsize=12)# 添加圖例ax.legend(loc='upper right') # 第一個坐標軸的圖例axes[0].tick_params(axis='y', labelcolor='r') # 設置第一個坐標軸的y軸刻度顏色
axes[0].set_ylabel('溫度 (上海)', color='r') # 第一個坐標軸的y軸標簽axes[1].tick_params(axis='y', labelcolor='b') # 設置第二個坐標軸的y軸刻度顏色
axes[1].set_ylabel('溫度 (北京)', color='b') # 第二個坐標軸的y軸標簽# 標題
plt.suptitle('中午11點0分到12點之間的溫度變化圖', fontsize=16)plt.show()