как добавить autopct в круговой диаграмме в python / matplotlib [duplicate]

Не все ли это предполагают, что базовый класс является классом нового стиля?

class A:
    def __init__(self):
        print("A.__init__()")

class B(A):
    def __init__(self):
        print("B.__init__()")
        super(B, self).__init__()

Не будет работать в Python 2. class A должен быть в стиле new, т. е. class A(object)

7
задан zehpunktbarron 5 January 2013 в 12:49
поделиться

1 ответ

help(pie) говорит:

  *autopct*: [ *None* | format string | format function ]
    If not *None*, is a string or function used to label the
    wedges with their numeric value.  The label will be placed inside
    the wedge.  If it is a format string, the label will be ``fmt%pct``.
    If it is a function, it will be called.

, чтобы вы могли вернуть проценты в исходные значения, умножив их на общий размер пирога и разделив на 100:

figure(1, figsize=(6,6))
ax = axes([0.1, 0.1, 0.8, 0.8])
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15, 30, 45, 10]
total = sum(fracs)
explode=(0, 0.05, 0, 0)
pie(fracs, explode=explode, labels=labels,
    autopct=lambda(p): '{:.0f}'.format(p * total / 100),
    shadow=True, startangle=90)
show()

[/g0]

10
ответ дан Gareth Rees 23 August 2018 в 00:49
поделиться
  • 1
    Чтобы показать как проценты, так и общее количество: stackoverflow.com/questions/6170246/… – zehpunktbarron 5 January 2013 в 14:38
  • 2
    Это должно быть lambda p в этом коде без скобок. – K.-Michael Aye 2 August 2016 в 01:13
  • 3
    @ K.-MichaelAye: Скобки были законными в Python 2.7 - обратите внимание на дату написания ответа. – Gareth Rees 1 May 2017 в 17:13
  • 4
    Ничего себе, извините, я не знал, что синтаксис изменился между Py2 и 3.;) – K.-Michael Aye 2 May 2017 в 00:31
Другие вопросы по тегам:

Похожие вопросы: