1. 程式人生 > >python中呼叫matplotlib畫圖,中文標註亂碼強力解決辦法

python中呼叫matplotlib畫圖,中文標註亂碼強力解決辦法

關於python中呼叫matplotlib畫圖,中文標註亂碼 如下: 在這裡插入圖片描述

解決辦法:

# 通用字型設定
from matplotlib import font_manager
# my_font = font_manager.FontProperties(fname="字型路徑")
my_font = font_manager.FontProperties(fname="/Library/Fonts/Songti.ttc")
...
# 使用方法
plt.xlabel("內容描述",fontproperties=my_font)

例項: matplotlib折線圖及中文標註顯示

from matplotlib import pyplot as plt
import random


# windows 和linux設定字型的方法
# import matplotlib

# font = {'family' : 'MicroSoft YaHei',
#         'weight' : 'bold',
#         'size'   : 10}
# matplotlib.rc("font", **font)

# 通用字型設定
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/Library/Fonts/Songti.ttc")


x = range(0,120)
y = [random.randint(20,35) for i in range(120)]

plt.figure(figsize=(20,8), dpi=80)

plt.plot(x,y)

x_label =list(x)
x_label_show = ["10點{}分".format(i) for i in range(60)]
x_label_show += ["11點{}分".format(i-60) for i in range(60,120)]
plt.xticks(x_label[::3],x_label_show[::3],rotation=45, fontproperties=my_font)  # rotation旋轉的度數

# 新增描述資訊
plt.xlabel("時間",fontproperties=my_font)
plt.ylabel("溫度 單位(°C)",fontproperties=my_font)
plt.title("10點到12點每分鐘點氣溫變化情況",fontproperties=my_font)

plt.show()

效果展示: 在這裡插入圖片描述