在用matplotlib
画图时,如果PyCharm已经设置了显示中文的问题,在遇到坐标轴标签存在类似mm²
的情况时,画出来的图无法正确显示成预期样式。
例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10)
y = np.square(x)
plt.plot(x,y)
plt.text(5,40,'y=x²',family='Times New Roman',fontsize=20,style='italic',color='k') # 文字注释格式设置
plt.xlabel('长度/m')
plt.ylabel('面积/mm²')
plt.show()
得到的结果图为:
解决办法一:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10)
y = np.square(x)
plt.plot(x,y)
plt.text(5,40,'y=x²',family='Times New Roman',fontsize=20,style='italic',color='k') # 文字注释格式设置
#plt.xlabel('长度/m')
# plt.ylabel('面积/mm²')
# 利用Tex格式
plt.xlabel('长度/'+r'$m$')
plt.ylable('面积/'+r'$mm^2$')
plt.show()
结果图如下:
解决方法二:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10)
y = np.square(x)
plt.plot(x,y)
plt.text(5,40,'y=x²',family='Times New Roman',fontsize=20,style='italic',color='k') # 文字注释格式设置
# plt.xlabel('长度/m')
# plt.ylabel('面积/mm²')
# 将中文改为英文,并设置成非中文字体
plt.xlabel('Length/m',family='Times New Roman')
plt.ylabel('Area/mm²',family='Times New Roman')
plt.show()