2014-04-03 4 views
-1

Я заметил, что, вызывая plt.legend() перед установкой свойств линии линии, строки, содержащие поле легенды, не были скорректированы в соответствии с настройками. вот пример сюжет и функция используется для установки условных обозначений и сюжетной линии свойства:matplotlib устанавливает легенду и свойства линий линий через одну функцию

import matplotlib.pyplot as plt 
import numpy as np 
fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(range(10), '-x', label = 'legend text') 
ax.plot(2 * range(10)) 
leg = plt.legend(title = 'legend here') 

def plotprop_adj(ax, leg, fs = 16, lw = 2, ms = 10) 
    ltext = leg.get_texts() 
    for item in ltext: 
     item.set_fontsize(fs) 
    for ln in ax.lines: 
     ln.set_linewidth(lw) 
     ln.set_markersize(ms) 

plotprop_adj(ax, leg) # leaves lines in legend box with 
         #+ different properties than the corresponding plots 

Следовательно, я пытался вручную установить свойства строки в пределах легенды следующим образом (добавить в plotprop_adj (...)):

def plotprop_adj(ax, leg, fs = 16, lw = 2, ms = 10) 
    [...] 
    leg_ln = leg.get_lines() 
    for ln in leg_ln: 
     ln.set_linewidth(lw) 
     ln.set_markersize(ms) 

в результате линия жгутов окна легенды имеет право толщины, но длина почти половины, а размер маркеров не меняется.

ответ

Смежные вопросы