2012-06-08 7 views
7

Ich versuche, die Schriftgröße des Titels einer vorhandenen Legende auf einer Rose, oder 'polar', zu ändern. Der meiste Code wurde von jemand anderem geschrieben, der weg ist. Ich habe hinzugefügt: -Ändern der Schriftgröße des Legendentitels in Python pylab rose/polar Plot

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

den Titel ‚legend_title‘, hinzuzufügen, die eine Variable ist, dass der Benutzer für eine Zeichenfolge tritt in einer einer anderen Funktion, die diesen Code verwendet. Die zweite Zeile gibt keinen Fehler zurück, scheint aber auch nichts zu tun. Der vollständige Code ist unten. 'Rose' und 'RoseAxes' sind Module/Funktionen, die von jemandem geschrieben wurden. Kennt jemand eine Möglichkeit, die Schriftgröße des Legendentitels zu ändern? Ich habe einige Beispiele für normale Plots gefunden, kann aber keine für rosa/polare Plots finden.

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) 

Vielen Dank für jede Hilfe

+1

Für alle interessierten, hier ist das, was wir es zu ändern, damit es funktioniert: schnelle Möglichkeit, Schriftgrößen in der Legende und Legende Titel einstellen l = ax.legend (title = legend_title) setp (l.get_texts(), Schriftgröße = 12) setp (l.get_title(), Schriftgröße = 12) – LaurieW

Antwort

3

Es gibt eine ähnliche Frage hier: How to set font size of Matplotlib axis Legend?

schaffe ich auf die die zweite Antwort mit Schriftgröße des Titels Titel zu ändern, die ich am einfachsten zu sein gefunden ein. Sie können auch den Farbtitel und andere Eigenschaften ändern. Ich habe den folgenden Code:

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) 

Meine Vermutung ist, dass es möglich ist, jeden Titel Eigenschaft zu ändern, um die set_fontsize (‚#‘) auf andere Parameter zu ersetzen, wie hier aufgeführt:

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

5

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()