2012-06-08 19 views
7

Estoy tratando de cambiar el tamaño de la fuente del título de una leyenda existente en un diagrama de rosa, o 'polar'. La mayoría del código fue escrito por otra persona, que está fuera. He añadido: -Cambiar el tamaño de la fuente del título de la leyenda en el diagrama Python Rose Rose/Polar

ax.legend(title=legend_title) 
setp(l.get_title(), fontsize=8) 

para añadir el título 'legend_title', que es una variable que el usuario introduce una cadena en una función diferente que utiliza este código. La segunda línea de esto no devuelve un error, pero tampoco parece hacer nada. El código completo está debajo. 'Rose' y 'RoseAxes' son módulos/funciones escritos por alguien. ¿Alguien sabe de una forma de cambiar el tamaño de letra del título de la leyenda? He encontrado algunos ejemplos de parcelas normales pero no puedo encontrar ninguna para parcelas rosas/polares.

from Rose.RoseAxes import RoseAxes 
from pylab import figure, title, setp, close, clf 
from PlotGeneration import color_map_xml 

fig = figure(1) 
rect = [0.02, 0.1, 0.8, 0.8] 
ax = RoseAxes(fig, rect, axisbg='w') 
fig.add_axes(ax) 
if cmap == None: 
    (XMLcmap,colors) = color_map_xml.get_cmap('D:/HRW/VET/HrwPyLibs/ColorMapLibrary/paired.xml',255) 
else: 
    XMLcmap = cmap 

bqs = kwargs.pop('CTfigname', None) 
ax.box(Dir, U, bins = rose_binX, units = unit, nsector = nsector, cmap = XMLcmap, lw = 0, **kwargs) 

l = ax.legend() 
ax.legend(title=legend_title) 
setp(l.get_texts(), fontsize=8) 
setp(l.get_title(), fontsize=8) 

Gracias por cualquier ayuda

+1

para todos los interesados, esto es lo que lo cambiamos a hacer que funcione: l = ax.legend (título = legend_title) setp (l.get_texts(), fontsize = 12) setp (l.get_title(), fontsize = 12) – LaurieW

Respuesta

3

Hay una pregunta similar aquí: How to set font size of Matplotlib axis Legend?

me las arreglo para cambiar el tamaño de fuente del título del título usando la segunda respuesta, que me pareció ser el más sencillo uno. También puede cambiar el título del color y otras propiedades. Tengo el siguiente código:

leg=legend((x3, x4,),shadow=False, loc=loca,title=labelE,prop={'size':8}) 
leg.draw_frame(False) 
ax111.get_legend().get_title().set_fontsize('36') 
ax111.yaxis.set_tick_params(labelsize=10) 

Mi conjetura es que es posible sea para cambiar cualquier propiedad del título sustituyendo el set_fontsize ('#') a otro parámetro que se enumeran aquí:

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.legend

5

forma rápida de ajustar los tamaños de fuente en la leyenda y la leyenda del título:

import numpy as np 
import pylab as plt 

f,ax = plt.subplots() 
x = np.arange(10) 
y = np.sin(x) 
ax.plot(x,y, label = 'sin') 

leg = ax.legend(fontsize = 'large') 
leg.set_title("title", prop = {'size':'x-large'}) 

f.show() 
Cuestiones relacionadas