Ptyhon matplotlib 繪圖 中文亂碼 不正常顯示

 參考文章:  https://fonttian.blog.csdn.net/article/details/78107421

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
from mpl_toolkits.mplot3d import Axes3D

# 添加下面代碼後繪圖可正常顯示中文,負號也可正常顯示
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['KaiTi'] # 此處設置爲楷體, 也設置爲其他字體
mpl.rcParams['font.serif'] = ['KaiTi']
mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題,或者轉換負號爲字符串

# plot
x = np.arange(0.05, 3, 0.05)

# 常函數
y1 = [ 5 for i in x]
plt.plot(x, y1, linewidth=2, label=r'常函數:y=5')

# 一次函數
y2 = [ 2*i + 1 for i in x]
plt.plot(x, y2, linewidth=2, label='一次函數:y=2x+1')

# 二次函數
y3 = [1.5*i**2 - 3*i + 1 for i in x]
plt.plot(x, y3, linewidth=2, label='二次函數: y=1.5*$x^2$-3x+1')

# 冪函數
y4 = [ math.pow(i, 2) for i in x]
plt.plot(x, y4, linewidth=2, label='冪函數:y=$x^2$')

# 指數函數
y5 = [ math.pow(2, i) for i in x]
plt.plot(x, y5, linewidth=2, label='指數函數:y=$2^x$')

# 對數函數
y6 = [ math.log(i, 2) for i in x]
plt.plot(x, y6, linewidth=2, label='對數函數:y=log2(x)')

plt.legend(loc='lower right')
plt.grid(True)
plt.show()

     第一張圖例中文不能正常顯示,第二張正常顯示

發佈了25 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章