1. 程式人生 > >Matplotlib及Seaborn中文顯示問題

Matplotlib及Seaborn中文顯示問題

當使用Matplotlib及Seaborn繪圖時,圖中中文字元不能正常顯示,會出現“□”字元。解決方法如下。

  • Matplotlib
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解決中文顯示問題-設定字型為黑體
plt.rcParams['axes.unicode_minus'] = False  # 解決儲存影象是負號'-'顯示為方塊的問題

x = np.arange(-2*np.pi, 2*np.pi, 0.01)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure(figsize=(10, 7))
plt.plot(x, y1, label='$sinx$')
plt.plot(x, y2, label='$cosx$')
plt.legend(loc='upper right')
plt.xlim(-2*np.pi-1, 2*np.pi+3)
plt.xticks([-2*np.pi, -np.pi, 0, np.pi, 2*np.pi], ['$-2\pi$', '$-\pi$', '$0$', '$\pi$', '$2\pi$'])
plt.title('三角-函式')
plt.xlabel('橫座標')
plt.ylabel('縱座標')
plt.axhline(y=0, c='black')

plt.show()
  • Seaborn
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字型設定-黑體
    plt.rcParams['axes.unicode_minus'] = False  # 解決儲存影象是負號'-'顯示為方塊的問題
    sns.set(font='SimHei')  # 解決Seaborn中文顯示問題
    
    x = np.arange(-2*np.pi, 2*np.pi, 0.01)
    y1 = np.sin(x)
    y2 = np.cos(x)
    plt.figure(figsize=(10, 7))
    plt.plot(x, y1, label='$sinx$')
    plt.plot(x, y2, label='$cosx$')
    plt.legend(loc='upper right')
    plt.xlim(-2*np.pi-1, 2*np.pi+3)
    plt.xticks([-2*np.pi, -np.pi, 0, np.pi, 2*np.pi], ['$-2\pi$', '$-\pi$', '$0$', '$\pi$', '$2\pi$'])
    plt.title('三角-函式')
    plt.xlabel('橫座標')
    plt.ylabel('縱座標')
    plt.axhline(y=0, c='black')
    
    plt.show()
    

    轉自:https://blog.csdn.net/qq_31816741/article/details/79339898