2012-03-24 56 views
1

我有一位同事以其他語言向我展示了他的工作環境。他有能力創建一個空的類似於字典的對象,並將指向該對象的指針傳遞給其他圖表庫。此圖表庫將創建一個窗口條形圖。由於類似字典的對象是空的,圖表什麼都不顯示。如何將python數據結構鏈接到matplotlib中?如字典 - >條形圖

現在,當他通過在對象中插入鍵值對來更新他的類似於字典的對象時,該圖表會實時更新他的更改。

它看起來非常棒,既然我是一個巨大的蟒蛇迷,我想告訴他「他能做的任何事情,我們可以做得更好!」但是,我對如何做到這一點感到不知所措 - 你們能幫忙嗎?

*如果重要,他的環境是基於APL的。

回答

2

你只需要編寫一個dict子類,該子類有一個__setitem__方法,每次更改一個項目時都會重繪圖表。對於獎勵積分,請檢查以確保該項目實際已更改,以避免不必要的重繪。

class Chartdict(dict): 
    def __setitem__(self, key, value): 
     if key in self: 
      if self[key] != value: 
       self[key] = value 
       # do whatever you need to do to update the chart here 

我沒有用matplotlib,所以我不知道你真正需要做的,從一個字典更新圖表 - 我已經離開了你。

+0

好的,但我如何向Chartdict投下一個字典?有沒有辦法做到這一點,而無需重新整理Chartdict? – user992592 2012-03-24 17:44:31

+0

'mydict = Chartdict(mydict)'會做。或者你可以用'mydict = Chartdict()'將其開始清空,並以通常的方式向它添加項目。 – kindall 2012-03-24 19:26:18