Modificar los parámetros de matplotlib en anaconda

 

Primero presento mi entorno de desarrollo:

   Plataforma del sistema: mac OS 10.15
    anaconda 3:
    matplotlib 2.0.2

Hay tres esquemas para modificar la configuración predeterminada del gráfico dibujado por matplotlib (tome el soporte chino como ejemplo):    

1. Solución 1: especifique la biblioteca de fuentes chinas instalada en esta máquina a través de font_manager. Asegúrese de que esta biblioteca de fuentes (fm.FontProperties (fname = '/ Library / Fonts / Arial Unicode.ttf') esté instalada en la ruta correspondiente de la máquina. 

#中文文本的解决方案:
#matplot显示图例中的中文问题 :   https://www.zhihu.com/question/25404709/answer/67672003
import matplotlib.font_manager as fm
#mac中的字体问题请看: https://zhidao.baidu.com/question/161361596.html
#  或  /System/Library/Fonts 
myfont = fm.FontProperties(fname='/Library/Fonts/Arial Unicode.ttf')  #  C:\Windows\Fonts\simsun
plt.axis([0,5,0,20])
plt.title('我的第一个图表',fontsize=20,fontname='Times New Roman',fontproperties=myfont)  # 要便用  fontproperties来指定中文字体
plt.xlabel('计数',fontproperties=myfont)
plt.ylabel('平方值',fontproperties=myfont)
plt.text(1,1.5,'一',fontproperties=myfont)
plt.text(2,4.5,'二',fontproperties=myfont)
plt.text(3,9.5,'三',fontproperties=myfont)
plt.text(4,16.5,'四')
plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.show()

2. Esquema 2: al especificar plt.style.use (<style-name>) o el estilo de configuración plt.rcParams, tendrá un efecto en todos los gráficos dibujados por esta plt. Para la documentación de estos dos esquemas, consulte:   https : //matplotlib.org/3.3.0/tutorials/introductory/customizing.html? highlight = text.usetex #

 Para elementos de configuración específicos, consulte el archivo matplotlibrc en el directorio de instalación de matplotlib. La ubicación de este archivo se puede ver con el siguiente comando:   

>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/home/foo/.config/matplotlib/matplotlibrc'

El contenido específico de este archivo también se puede ver en el sitio web oficial de matplotlib en:  https://matplotlib.org/3.3.0/tutorials/introductory/customizing.html?highlight=text.usetex#matplotlibrc-sample

El siguiente es mi código de prueba: 

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.rcParams['axes.grid']=True
#以上其它的配置项可以参考官方文档


#rcParams可以指定绘图中所有的外观配置,具体的参数请参见: 
plt.axis([0,5,0,20])
plt.title('我的第一个图表',fontsize=20)  # 要便用  fontproperties来指定中文字体
plt.xlabel('计数')
plt.ylabel('平方值')
plt.text(1,1.5,'一')
plt.text(2,4.5,'二')
plt.text(3,9.5,'三')
plt.text(4,16.5,'四')
plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.show()

Análisis Hay cinco tipos de familias de fuentes:

# font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif 
#font. sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif 
# font.cursive: Apple Chancery, Textile, Zapf Chancery, Sand, Script MT, Felipa, cursive 
# font.fantasy: Comic Neue, Comic Sans MS, Chicago, Charcoal, ImpactWestern, Humor Sans, xkcd, fantasy 
# font.monospace: DejaVu Sans Mono, Bitstream Vera Sans Mono, Computer Modern Typewriter, Andale Mono , Nimbus Mono L, Courier New, Courier, Fijo, Terminal, monoespacio

Por defecto, no hay fuente china. Aquí instalé una fuente china SimHei en el mac, que pertenece a la familia de fuentes sans-serif. Así que configuré

plt.rcParams ['font.sans-serif'] = ['SimHei'] # Se usa para mostrar etiquetas chinas normalmente,

De esta manera, se puede mostrar el chino, pero este esquema de configuración solo es válido para el plt actual y otro proceso no es válido. 

 

3. Solución 3: Realice la configuración global modificando el archivo matplotlibrc. 

   Este archivo está en mi ubicación: /Applications/anocadote/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

   Encuentra uno de ellos

#font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

 cambiado a:

font.sans-serif     : SimHei

 Tenga en cuenta: Todas las partes que comienzan con # en este archivo son la configuración predeterminada del sistema. Puede consultar alguna configuración básica de matplotlib. 

  Verifique que la configuración global anterior sea correcta:

import matplotlib
print(matplotlib.rc_params()) 

Se pueden obtener los siguientes resultados, indicando que la configuración es exitosa:

Supongo que te gusta

Origin blog.csdn.net/zhangyingchengqi/article/details/107911695
Recomendado
Clasificación