2012-09-16 2 views
1

matplotlib의 플롯 렌더링을 위해 Qt4Agg (PyQt4)를 백엔드로 사용하고 있습니다. 이것은 매우 유용한 버튼이있는 매우 유용한 툴바를 가지고 있습니다. '커브 라인 및 축 파라미터 편집'. 그러나 누를 때마다 오류가 발생합니다. (막대 그래프에서는 유용하지만 라인 플롯에서는 유용하지 않다는 것을 알고 있습니다 : P).matplotlib : Qt4Agg 툴바의 자극적 버그

원인과 추적은 아래 그림에서 명확하게 볼 수 있습니다.

enter image description here

나는이하기 matplotlib의 현재 버전은 그래서 동일한의 최신 버전이 시도 버그가 될 줄 알았는데하지만 여전히 같은 오류를 제공합니다.

import matplotlib.pyplot as plt 
plt.plot(range(10)) 
plt.show() 

(나는 구성 파일 /etc/matplotlibrc을 통해 백엔드를 구성)

날이 문제를 해결 도와주세요 -

같은 오류 (플롯 위에서 다를 수 있습니다)를 제공합니다 간단한 스크립트입니다 문제.

답변

1

이것은 실제로 matplotlib 용 Qt4 양식 편집기의 버그 인 것 같습니다.

FormWidget.setup() 메서드 섹션에 오류가있는 것 같습니다 (matplotlib/backends/qt4_editor/formwidget.py). (I 문제를 재현 할 수) Windows에서하기 matplotlib 1.1.0, 그것은 다음이 포함되어 정확한 쿠분투에

 elif isinstance(value, (list, tuple)): 
      selindex = value.pop(0) 
      field = QComboBox(self) 
      if isinstance(value[0], (list, tuple)): 
       keys = [ key for key, _val in value ] 
       value = [ val for _key, val in value ] 
      else: 
       keys = value 
      field.addItems(value) 

하기 matplotlib의 v1.1.1rc (나는 문제를 재현 할 수있는 곳) 두 번째 줄을 대체 위의 내용 중

  selindex = list(value).pop(0) 

궁극적으로 어느 버전도 맞지 않습니다.

버전 1.1.0 메서드의 문제는 튜플 (튜플은 변경 불가능하고 pop이 없음) 메서드를 처리하지 않으며 버전 1.1.1rc 코드의 문제는 첫 번째 요소 value이 제거 될 예정이지만 list(value)이 만드는 임시 목록에서만 제거됩니다.

이 버그는 1.1.1 버전에서 수정되었습니다. 방금이 버전을 다운로드하여 설치 했으므로 더 이상 문제를 재현 할 수 없습니다.

+0

감사합니다. Luke :). 난 우분투 12.04 기계에서 그것을 테스트로서 나는 최신 버전을 가지고 있다고 생각했지만, 그렇지 않았습니다. 1.1.1rc였습니다. 그래서 저는 github에서 최신 버전을 설치했고 이제는 훌륭하게 작동합니다! 고맙습니다. –