es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo representar varios idiomas (por ejemplo, chino, cirílico, inglés) a la vez en una leyenda utilizando matplotlib?

Estoy trazando estadísticas relacionadas con diferentes traducciones de una palabra. Utilizando python / matplotlib en Ubuntu, no puedo hacer que mi leyenda muestre todos mis idiomas.

Mi código a continuación:

#!/usr/bin/python

import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('pgf') # Esto puede dificultar las cosas; las soluciones sin esto también son de interés
# pip3 install matplotlib==3.5
plt.close('all')

fig, ax = plt.subplots(1)
ax.plot(1, 1, '.', label='english')
ax.plot(1, 2, '.', label='Glück')
ax.plot(1, 1, '.', label='доход')
ax.plot(1, 1, '.', label='幸福')
plt.legend()
plt.savefig('tmp.pdf')
plt.savefig('tmp.png')

print(matplotlib.__version__)

parece funcionar bien con varios caracteres Unicode, pero no con chino. Obtengo lo siguiente:

imagen

/home/meuser/tmpbug.py:23: Advertencia del usuario: El glifo 24184 (\N{CJK UNIFIED IDEOGRAPH-5E78}) falta en la fuente actual.

/home/meuser/tmpbug.py:23: Advertencia del usuario: El glifo 31119 (\N{CJK UNIFIED IDEOGRAPH-798F}) falta en la fuente actual.

/home/meuser/tmpbug.py:23: Advertencia del usuario: El glifo 24184 (\N{CJK UNIFIED IDEOGRAPH-5E78}) falta en la fuente actual.

/home/meuser/tmpbug.py:23: Advertencia del usuario: El glifo 31119 (\N{CJK UNIFIED IDEOGRAPH-798F}) falta en la fuente actual.

/home/meuser/tmpbug.py:24: Advertencia del usuario: El glifo 24184 (\N{CJK UNIFIED IDEOGRAPH-5E78}) falta en la fuente actual.
  print(plt.__version__)
/home/meuser/tmpbug.py:24: Advertencia del usuario: El glifo 31119 (\N{CJK UNIFIED IDEOGRAPH-798F}) falta en la fuente actual.
  print(plt.__version__)
3.5.0

¿Cómo puedo hacer que todas mis etiquetas se muestren en una leyenda?
Si esto no es posible, ¿por qué no?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar todas las etiquetas en una sola leyenda, puedes intentar ajustar el tamaño de la fuente o utilizar una fuente diferente que admita todos los caracteres Unicode requeridos. También puedes intentar aumentar el tamaño del cuadro de la leyenda para que quepan todas las etiquetas.
    Una posible razón por la cual la leyenda no muestra todas las etiquetas es que la fuente utilizada no tiene soporte para todos los caracteres Unicode utilizados en las etiquetas. Otra razón podría ser que el tamaño del cuadro de la leyenda no es lo suficientemente grande para que quepan todas las etiquetas.
    En este caso, el mensaje de advertencia indica que algunos caracteres chinos (Gliptos 24184 y 31119) no se encuentran en la fuente actual utilizada. Puedes intentar utilizar una fuente que admita caracteres chinos o descargar los glifos faltantes e instalarlos en tu sistema.

Comments are closed.