Resuelva el problema de que la visualización china del dibujo usando python matplotlib bajo el sistema Linux se muestra como un cuadro

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 ~~

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_39121325/article/details/89310795
Recomendado
Clasificación