2016-03-22 14 views
1

Im Folgenden Abbildung zeigt das Diagramm von dem Pfeilkopf sehr klein ist ... enter image description hereWie ändere ich die Kopfgröße des Doppelkopf-Annotates in Matplotlib?

ich unten Code versucht, aber es didnot Arbeit ... gesagt "erhöhen Attribute (‚Unbekannte Eigenschaft% s‘% k) Attribute: Unbekannte Eigenschaft headwidth“...

xyfrom=[10,620] 
xyto=[130,620] 
ax.annotate("",xyfrom,xyto,arrowprops=dict(arrowstyle='<->',linewidth = 2,  headwidth=10,color = 'k' 
)) 
ax.text((xyto[0]+xyfrom[0])/2-15,(xyto[1]+xyfrom[1])/2+10,"headwidth is too small",fontsize=24) 

Antwort

3

ich glaube, es ist, weil Sie Ihre arrowstyle Argumente in einem String geben müssen. Versuchen Sie folgendes:

arrowprops=dict(arrowstyle='<->, head_width=10', facecolor='k') 

darauf, wie dies eine vollständige Zeichenfolge ist:

'<->, head_width=10' 

Es ist eine wirklich seltsame Wahl in matplotlib, den ich wirklich nicht verstehen, warum sollte es so sein. In jedem Fall sehen Sie, ob Ihr Problem gelöst ist.

+0

Perfekt um dieses Problem zu lösen! – user3737702

+0

Hat nicht für mich gearbeitet. Ich habe 'TypeError: __init __() ein unerwartetes Schlüsselwortargument 'head_width' mit der obigen Lösung bekommen. –

+0

@ con-f-use Ich bin mir nicht sicher, aber es ist wahrscheinlich aufgrund der Matplotlib-Version. Das hat geklappt (ich teste das normalerweise vor dem Posten), aber ich fand es schon zu dieser Zeit eine merkwürdige Unterbrechung der API-Regeln für Matplotlib. Die [aktuelle Dokumentation] (http://matplotlib.org/users/annotations_intro.html) zeigt die 'arrowprops'-Schlüsseltabelle (nach ihr suchen), wobei' headwidth' als Schlüssel für ein Wörterbuch erscheint. Versuchen Sie, außerhalb der Zeichenfolge zu verwenden. – armatita