簡體   English   中英

繪制包含列表作為值的字典的所有鍵(python)

[英]plotting all keys of a dictionary which contains list as values (python)

在python 2.7中,我有一個字典,字典的大小可以變化。 對於每個鍵,Q1,Q2,Q3 ......我需要繪制字典值,這些值是包含日期和整數的列表。

{'Q1': [['20.03.2016', 25], ['21.03.2016', 35], ['22.03.2016', 22], ['23.03.2016
', 50], ['24.03.2016', 50], ['30.03.2016', 50], ['30.03.2016', 50]], 'Q3': [['20
.03.2016', 23], ['21.03.2016', 21], ['22.03.2016', 27], ['23.03.2016', 20], ['24
.03.2016', 20], ['30.03.2016', 20], ['30.03.2016', 20]], 'Q2': [['20.03.2016', 1
5], ['21.03.2016', 12], ['22.03.2016', 15], ['23.03.2016', 15], ['24.03.2016', 1
5], ['30.03.2016', 15], ['30.03.2016', 15]], 'Q5': [['20.03.2016', 320], ['21.03
.2016', 30], ['22.03.2016', 30], ['23.03.2016', 30], ['24.03.2016', 30], ['30.03
.2016', 30], ['30.03.2016', 30]], 'Q4': [['20.03.2016', 130], ['21.03.2016', 10]
, ['22.03.2016', 10], ['23.03.2016', 10], ['24.03.2016', 10], ['30.03.2016', 10]
, ['30.03.2016', 10]], 'Q7': [['23.03.2016', 5], ['24.03.2016', 5], ['30.03.2016
', 5], ['30.03.2016', 5]], 'Q9': [['30.03.2016', 17]], 'Q8': [['24.03.2016', 15]
, ['30.03.2016', 15], ['30.03.2016', 15]]}

如何在一個包含每個鍵的行的繪圖窗口中繪制所有鍵,並按鍵名稱標記? 每行應使用顏色編碼,並顯示每個鍵的所有整數與日期數據點。 因此Q1線將繪制第二列(整數)與第一列(日期)的關系圖

['20.03.2016', 25], 
['21.03.2016', 35],
['22.03.2016', 22],
['23.03.2016', 50],
['24.03.2016', 50], 
['30.03.2016', 50],
['30.03.2016', 50]

每行都可以進行顏色編碼,並且應該在圖例中包含鍵的標簽。 我在python中使用numpy和matplotlib庫。

我們可以簡單地遍歷字典項,然后使用zip()解壓縮值。 plot()label=關鍵字參數將使legend()調用自動創建圖例。

for key, data_list in data_dict.items():
    dates_str, values = zip(*data_list)  # Unpack
    dates = convert_str_to_dates(dates_str)  # Not handled in example
    plt.plot(dates, values, label=key)
plt.legend()

要解決的是如何從字符串列表轉到matplotlib可以理解的某種日期對象。 不過,在文檔中應該很容易找到它。

編輯:使用zip()解壓縮列表列表的技巧對我來說就是那些“啊哈!”時刻之一:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM