Python matplotlib修改默认字体的操作
### Python Matplotlib 修改默认字体的方法 #### 背景介绍 Matplotlib 是 Python 中非常流行的绘图库之一,它能够生成各种静态、动态图像,并且易于集成到 Web 应用程序中。但在默认情况下,Matplotlib 不支持中文显示,这在处理中文数据时会带来不便。因此,本文将详细介绍两种修改 Matplotlib 默认字体的方法,以便更好地支持中文显示。 #### 方法一:在 Plot 中指定 Prop 参数 这种方法适用于单次绘图操作中临时改变字体的需求。具体步骤如下: 1. **加载中文字体**:通过 `matplotlib.font_manager` 模块中的 `FontProperties` 类来加载中文字体。 2. **设置字体**:在绘制图形时通过 `prop` 参数传递所加载的字体。 **代码示例**: ```python import matplotlib.pyplot as plt import matplotlib.font_manager as fm # 数据准备 x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017'] y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000] y_data2 = [52000, 54200, 51500, 58300, 56800, 59500, 62700] # 绘制图形 plt.plot(x_data, y_data, color='red', linewidth=2.0, linestyle='--', label='A书年销量') plt.plot(x_data, y_data2, color='blue', linewidth=2.0, linestyle='-.', label='B书年销量') # 加载字体 my_font = fm.FontProperties(fname='C:\\Windows\\Fonts\\YaHei.Consolas.1.12.ttf') # 设置图例字体 plt.legend(loc='best', prop=my_font) plt.show() ``` 这段代码首先导入必要的模块,并准备数据。然后通过 `FontProperties` 类加载一个特定的中文字体,并在绘制图例时使用该字体。 #### 方法二:修改 Matplotlib 默认字体 如果希望全局地更改 Matplotlib 的默认字体,可以通过修改配置文件 `matplotlibrc` 来实现这一目标。 1. **定位配置文件**:首先需要找到 `matplotlibrc` 文件的位置,可以通过以下方式获取: ```python >>> import matplotlib >>> matplotlib.matplotlib_fname() ``` 2. **编辑配置文件**:打开配置文件,找到 `font.family` 配置项,将其设置为你想要使用的中文字体。例如,可以设置为 “SimHei” 或 “YaHei”: ``` font.family: SimHei ``` 3. **保存并重启**:保存配置文件后,重启应用程序或内核以使更改生效。 **代码示例**: ```python import matplotlib as mpl # 设置默认字体为 SimHei mpl.rcParams['font.sans-serif'] = ['SimHei'] # 绘制图形 plt.plot(x_data, y_data, color='red', linewidth=2.0, linestyle='--', label='A书年销量') plt.plot(x_data, y_data2, color='blue', linewidth=2.0, linestyle='-.', label='B书年销量') plt.legend(loc='best') plt.show() ``` 通过这种方法,可以在全局范围内设置 Matplotlib 的默认字体为中文字体,从而使得所有绘图操作均支持中文显示。 #### 总结 通过上述两种方法,我们可以有效地解决 Matplotlib 在默认情况下不支持中文显示的问题。第一种方法适用于临时更改单个图表的字体,而第二种方法则是在全局范围内设置默认字体,更适用于需要长期支持中文显示的项目。希望这些方法能帮助你在使用 Matplotlib 时更加得心应手。