2012-03-24 3 views
1

나는 다른 언어로 자신의 작업 환경을 보여준 동료가 있습니다. 그는 빈 dict-like 오브젝트를 만들고이 오브젝트에 대한 포인터를 다른 차트 라이브러리에 전달할 수있었습니다. 이 차트 라이브러리는 창 막대 차트를 만듭니다. dict-like 오브젝트가 비어 있었기 때문에 차트에 아무 것도 표시되지 않았습니다.python 데이터 구조를 matplotlib에 연결하는 방법은 무엇입니까? dict -> 막대 차트

이제 그는 키와 값 쌍을 객체에 삽입하여 사전을 닮은 객체를 업데이트 했으므로 차트가 변경되면서 실시간으로 마술처럼 업데이트됩니다.

나는 엄청나게 환상적이었고, 나는 거대한 파이썬 팬 이었기 때문에 "그분이 할 수있는 모든 것, 더 잘할 수 있습니다!"라고 말하고 싶습니다. 그러나, 나는 이것을하는 방법에 관해서는 손해보고 있습니다 - 당신들도 도와 줄 수 있습니까?

* 중요한 점은 그의 환경은 APL 기반이었습니다.

답변

2

dict 하위 클래스를 작성하면 __setitem__ 메서드를 사용하면 항목이 변경 될 때마다 차트가 다시 그려집니다. 보너스 포인트의 경우 불필요한 다시 그릴을 방지하기 위해 항목이 실제로 변경되었는지 확인하십시오. 내가 왼쪽으로 한 당신에게 - 나는 그래서 당신이 실제로 딕셔너리에서 차트를 업데이트 할 필요가 무엇인지 모르는 matplotlib을 사용하지 않는 한

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 

.

+0

좋아요,하지만 어떻게 딕트를 차트 딕테이션에 캐스팅합니까? 전체 Chartdict repopulating없이 그것을 할 수있는 방법이 있습니까? – user992592

+0

'mydict = Chartdict (mydict)'할 것입니다. 아니면'mydict = Chartdict()'로 빈칸을 시작하고 평소와 같이 항목을 추가 할 수 있습니다. – kindall