Entorno operativo:
- python3.6
- ubuntu
- matplotlib bajo conda3
- jupyterLab
problema:
- matplotlib dibuja una imagen, no puede mostrar chino
- Cuando no se agrega ninguna fuente, el código y la figura se muestran de la siguiente manera:
-
import matplotlib.pyplot as plt import random from matplotlib.font_manager import FontProperties from pylab import * # 每隔两小时range(2, 26, 2) ,数据在x轴的数据, 可迭代 x = range(2, 26, 2) y = [15, 16, 14, 17, 20, 25, 26, 24, 22, 18, 15, 10] fig = plt.figure(figsize=(20, 8), dpi=80) # (20, 8)宽20,高8,dpi设置图片清晰度, 让图片更加清晰 plt.plot(x, y) # 设置x轴, y轴的刻度 _xticks_labels = [i/2 for i in range(2, 49)] plt.xticks(_xticks_labels[: :4]) # 设置步长 plt.yticks(range(min(y), max(y)+1)) plt.title(u'中文') plt.show()
Razón (puede haber otras razones):
- No hay fuentes chinas disponibles en el sistema operativo Linux ni en la biblioteca de fuentes matplotlib
- El paquete matplotlib solo admite códigos ASCII de forma predeterminada, no códigos Unicode
Resolver el problema:
1. Busque la ruta de la biblioteca del archivo de fuentes en el paquete de instalación matplotlib en linux:
'/home/XXX/anaconda3/envs/env_keras_gpu/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf'
Puede ver que la fuente que necesita puede no estar disponible:
2. Descarga la fuente que necesitas
Ruta de descarga: https://github.com/dolbydu/font (GitHub)
Baidu Netdisk: Enlace: https://pan.baidu.com/s/1CB5gGp-A_IKJyIPFlNsMKw Código de extracción: 9sef
Esta es la fuente que descargué por mí mismo. Si necesita descargar otras fuentes, puede ir a GitHub para descargar
3. Coloque la fuente que descargó en la carpeta
'/home/XXX/anaconda3/envs/env_keras_gpu/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf'
Puede ver estas fuentes adicionales Micro-group Yahei-Microsoft Yahei.ttf, Hei-SimHei.ttf, Kai-Ti-STKaiti.TTF
4. Una vez descargada la fuente, puede agregar fuentes
Código:
import matplotlib.pyplot as plt
import random
from matplotlib.font_manager import FontProperties
from pylab import *
fname = "/home/XXX/anaconda3/envs/env_keras_gpu/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/STKaiti.TTF"
myfont = FontProperties(fname=fname)
# 每隔两小时range(2, 26, 2) ,数据在x轴的数据, 可迭代
x = range(2, 26, 2)
y = [15, 16, 14, 17, 20, 25, 26, 24, 22, 18, 15, 10]
fig = plt.figure(figsize=(20, 8), dpi=80) # (20, 8)宽20,高8,dpi设置图片清晰度, 让图片更加清晰
plt.plot(x, y)
# 设置x轴, y轴的刻度
_xticks_labels = [i/2 for i in range(2, 49)]
plt.xticks(_xticks_labels[: :4]) # 设置步长
plt.yticks(range(min(y), max(y)+1))
plt.title(u'中文',fontproperties=myfont)
plt.show()
La imagen en este momento es la siguiente:
Bien, ahora el problema está resuelto. . . .
Hay otras soluciones, todos pueden discutir y discutir
Puedes prestar atención a la cuenta oficial de mi amigo y yo ~~~ ¡Aquí hay información técnica de Python que mi amigo y yo actualizamos de vez en cuando! ! También puede dejar un mensaje para discutir problemas técnicos. Espero que pueda apoyarlo y prestarle atención. Gracias ~~