Comment puis-je utiliser matplotlib autopct?
J'aimerais créer un matplotlib graphique qui a la valeur de chaque coin écrite sur le dessus de la cale.
La la documentation suggère que je devrais utiliser autopct
pour ce faire.
autopct: [ Aucun | format string |
fonction format ]
Si non Aucune, est une chaîne de caractères ou une fonction utilisée pour marquer les coins avec une
leur valeur numérique. Le label sera
placé à l'intérieur de la cale. Si c'est un
chaîne de format, le label sera
fmt%du pct. Si c'est une fonction,
être appelé.
Malheureusement, je ne suis pas sûr que cette chaîne de format ou format de fonction est censé être.
À l'aide de cette base exemple ci-dessous, comment puis-je afficher chaque valeur numérique haut de ses cale?
plt.figure()
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels=labels) #autopct??
plt.show()
Vous devez vous connecter pour publier un commentaire.
autopct
vous permet d'afficher le pourcentage de la valeur à l'aide de Python mise en forme de chaîne. Par exemple, siautopct='%.2f'
, puis pour chaque tarte coin, la chaîne de format est'%.2f'
numérique et la valeur de pourcentage pour que le coin estpct
, de sorte que le coin de l'étiquette de valeur la chaîne'%.2f'%pct
.rendements
Vous pouvez faire des choses plus par la fourniture d'une appelable à
autopct
. Pour afficher à la fois le pourcentage de la valeur et de la valeur d'origine, vous pourriez faire ceci:De nouveau, pour chaque tarte coin, matplotlib fournitures pour cent de la valeur
pct
comme argument, mais cette fois, il est envoyé en tant qu'argument à la fonctionmy_autopct
. Le coin de l'étiquette est définie àmy_autopct(pct)
.values
àmy_autopct
.autopct
fonction à une fonction d'une variable, la valeur en pourcentage,pct
. Cependant, vous pouvez vous fermeture -- "une fonction qui peut se référer à des environnements qui ne sont plus actifs". J'ai édité le post ci-dessus pour montrer comment. Maintenantvalues
est passé àmake_autopct
, etmake_autopct(values)
retourne la fermeturemy_autopct
. Lorsquemy_autopct
est appelé, il va cherchervalues
dans le cadre englobant demake_autopct
.autopct='%.2f%%'
devrait être
pour éviter les erreurs d'arrondi.
round()
, c'est à direint(round(pct*total/100.0))
, qui est ce que l'on a accepté la réponse a été mis à jour pour utiliser.Que vous pouvez faire:
À l'aide de lambda et le format peuvent être mieux