Matplotlib における中国語文字化け問題の解決方法の共有
Matplotlib は豊富な描画機能を提供する強力なデータ視覚化ライブラリですが、中国語環境では文字化けの問題が発生することがよくあります。この記事では、Matplotlib での中国語の文字化けの問題を解決するためのいくつかの方法を共有し、具体的なコード例を示します。
方法 1: デフォルト フォントを設定する
Matplotlib で使用されるデフォルト フォントは中国語をサポートしていないため、デフォルト フォントを設定することで文字化けの問題を解決できます。まず、現在のシステムで中国語をサポートするフォント名 (「SimHei」、「Microsoft YaHei」など) を決定する必要があります。次に、matplotlib.rcParams を使用してフォントを設定します。
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置默认字体为SimHei plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 # 绘图代码 plt.plot([1, 2, 3, 4]) plt.xlabel('横坐标') plt.ylabel('纵坐标') plt.title('示例图') plt.show()
上記のコードにより、デフォルトのフォントを「SimHei」に設定し、axes.unicode_minus を False に設定します。これにより、Matplotlib で表示される負号の問題を解決できます。このようにして、漢字を正常に表示することができます。
方法 2: カスタム フォント ファイルを使用する
システムがデフォルトで中国語フォントをサポートしていない場合は、カスタム フォント ファイルを使用することで文字化けの問題を解決できます。まず、「msyh.ttc」などの漢字をサポートするフォント ファイルをダウンロードする必要があります。次に、FontProperties を使用してカスタム フォントを読み込みます。
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'path/to/msyh.ttc') # 加载自定义字体 # 绘图代码 plt.plot([1, 2, 3, 4]) plt.xlabel('横坐标', fontproperties=font) plt.ylabel('纵坐标', fontproperties=font) plt.title('示例图', fontproperties=font) plt.show()
上記のコードを通じて、カスタム フォント ファイルを FontProperties に読み込み、fontproperties パラメーターを使用して図面内でのフォントの使用を指定します。このようにして、漢字も正常に表示することができます。
方法 3: アイコンを使用して中国語の文字を表示する
場合によっては、グローバル設定ではなく、凡例やラベルなどの特定の場所にのみ中国語の文字を表示する必要があります。特定の場所のフォントを指定することで文字化けの問題を解決できます。たとえば、凡例で中国語の文字を使用するには、fontproperties パラメーターを使用できます。
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'path/to/msyh.ttc') # 加载自定义字体 # 绘图代码 plt.plot([1, 2, 3, 4], label='曲线', color='r') plt.legend(prop=font) # 图例中使用中文字符 plt.xlabel('横坐标') plt.ylabel('纵坐标') plt.show()
上記のコードでは、凡例で漢字の「曲線」を使用し、prop パラメーターを通じてカスタム フォントの使用を指定しました。このようにして、特定の位置に漢字を正しく表示することができます。
要約すると、既定のフォントを設定し、カスタム フォント ファイルを使用し、特定の場所にフォントを指定することで、Matplotlib の中国語文字化け問題を解決できます。適切な方法を選択すると、データ視覚化で漢字をより適切に表示できます。
以上がmatplotlib の漢字表示の問題を解決する方法を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。