<p>下面的内容可以满足您的需要。它使用Python的<code>Counter</code>类来计算<code>status-events</code>类型中的每一个,然后在饼图中显示整理后的信息:</p>
<pre><code>import matplotlib.pyplot as plt
import datetime
from collections import Counter
events = [
{'origin': u'HW',
'department': u'Intern',
'ticket-closed': False,
'prio-events': [(datetime.datetime(2015, 6, 8, 17, 30, 17, 490990), u'Important')],
'status-events': [(datetime.datetime(2015, 6, 8, 17, 30, 17, 490990), u'new'), (datetime.datetime(2015, 7, 22, 16, 41, 52, 408334), u'developing')]},
{'origin': u'HW',
'department': u'Intern',
'ticket-closed': False,
'prio-events': [(datetime.datetime(2015, 6, 8, 17, 39, 34, 351329), u'Important')],
'status-events': [(datetime.datetime(2015, 6, 8, 17, 39, 34, 351329), u'new')]},
{'origin': u'HW',
'department': u'Intern',
'ticket-closed': False,
'prio-events': [(datetime.datetime(2015, 6, 8, 17, 49, 58, 454331), u'Important')],
'status-events': [(datetime.datetime(2015, 6, 8, 17, 49, 58, 454331), u'new'), (datetime.datetime(2015, 7, 22, 16, 42, 49, 339349), u'closed')]}]
event_types = Counter()
for event in events:
for status in event['status-events']:
event_types[status[1]] += 1
plt.pie(event_types.values(), labels=event_types.keys(), autopct='%1.1f%%')
plt.axis('equal')
plt.show()
</code></pre>
<p>这将显示如下饼图:</p>
<p><a href="https://i.stack.imgur.com/gRJVw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gRJVw.png" alt="enter image description here"/></a></p>