[英]Python3 MatPlotLib : How can I get Multiple Line Plots
我有一個這樣的元組列表:
list_months = [ ('A', 'January'),
('A', 'January'),
('A', 'January'), # Total 10 instances of ('A', 'January')
('A', 'March'),
('A', 'March'),
('A', 'March'),
('A', 'February'),
('A', 'February'),
.............
('B', 'January'),
('B', 'January'), # Total 15 instances of ('B', 'January')
('B', 'July'),
('B', 'July'),
............. ]
這是通過使用以下命令通過Pandas數據框獲得的:
for index, val in b['Incident Reported Date Time'].iteritems():
list_months.append((index, str(val)))
我希望能夠生成MatPlotLib圖,例如:
X軸->月
Y軸->體積
多色線->每條代表“ A”,“ B”,“ C”等
例如,在此圖片中,紅線代表“ A”,藍線代表“ B”。
由於('A','January')有10個,因此在一月的Y軸上的10上顯示紅線,而('B',January')則有15個,因此顯示藍線一月份Y軸的15點。
如何在matplotlib for Python3中動態生成此圖例和圖例?
該圖應為線形圖,如示例圖像中所示。
如果將數據保留在DataFrame中,則繪制起來會更容易。 我使用您帖子中的示例數據制作了一個示例DataFrame:
list_months = [ ('A', 'January'),
('A', 'January'),
('A', 'January'), # Total 10 instances of ('A', 'January')
('A', 'March'),
('A', 'March'),
('A', 'March'),
('A', 'February'),
('A', 'February'),
('B', 'January'),
('B', 'January'), # Total 15 instances of ('B', 'January')
('B', 'July'),
('B', 'July')
]
d = pandas.DataFrame(list_months, columns=["Item", "Month"]).fillna(0)
>>> d
Item Month
0 A January
1 A January
2 A January
3 A March
4 A March
5 A March
6 A February
7 A February
8 B January
9 B January
10 B July
11 B July
然后,您可以輕松獲得情節:
>>> d.groupby(['Month', 'Item']).size().unstack().loc[['January', 'February', 'March', 'July']].fillna(0).plot(kind='line')
( .loc['January', 'February', ...]
位只需.loc['January', 'February', ...]
時間順序而不是字母順序獲得月份。從長遠來看,最好通過日期時間存儲此信息對象或代表月份的數字。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.