题目中提到的“基于plt.title无法显示中文”的问题,是由于matplotlib默认使用英文字体来显示标签和标题,而中文字体较为特殊,需要通过特殊的设置才能正常显示。下面是一些常用的解决方法:
方法1: 设置全局字体
可以通过设置matplotlib全局字体来解决中文乱码的问题。在脚本或ipython notebook中,使用如下代码可以设置全局字体:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
这里我们使用的是中文字体“SimHei”,需要注意的是,这样设置虽然可以解决中文乱码的问题,但是其他标签和标题的字体也会变成中文。如果你不想改变其他标签和标题的字体,可以将字体设置为默认字体;如果你想改变其他标签的字体,可以使用类似的方法来设置。
下面是一些示例:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.sin(x)
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.plot(x, y)
plt.title('中文标题')
plt.show()
方法2: 在每个标签和标题中设置字体
除了全局设置之外,我们还可以在每次调用标题和标签的时候设置字体。例如:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
x = np.linspace(0, 10, 1000)
y = np.sin(x)
font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)
plt.plot(x, y)
plt.xlabel('横轴', fontproperties=font)
plt.ylabel('纵轴', fontproperties=font)
plt.title('中文标题', fontproperties=font)
plt.show()
在这个示例中,我们使用了matlplotlib提供的“FontProperties”类来设置每个标签和标题的字体。需要注意的是,使用这种方法需要手动指定字体文件的路径和字体大小,比较麻烦。
下面是另一个使用示例:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('横轴', fontsize=14, fontfamily='SimHei')
plt.ylabel('纵轴', fontsize=14, fontfamily='SimHei')
plt.title('中文标题', fontsize=16, fontfamily='SimHei')
plt.show()
在这个示例中,我们直接在设置标签和标题的时候指定字体、字号和字体族。这种方法比较简单,但是需要手动指定字体族的名称。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于plt.title无法显示中文的快速解决 - Python技术站