2010-02-02 5 views
0

현재 wxPython에 여러 섹션이있는 GUI가 있습니다. 그 중 하나는 플롯의 .png 이미지를 표시합니다.wxPython GUI : gnuplot을 matplotlib로 마이그레이션

self.plot = wx.BitmapButton(self.pane_system, -1, wx.Bitmap("/home/myname/projects/newton/plot/src/graph.png", wx.BITMAP_TYPE_ANY)) 

GUI의 다른 부분에는 매개 변수를 편집 할 수있는 곳이 있습니다. 현재 설정은 매개 변수를 변경하고 Enter 키를 누를 때 코드가 Gnuplot에게 새 플롯을 graph.png 파일에 다시 플롯하고 저장 한 다음 GUI를 업데이트하여 업데이트 된 이미지를 표시한다는 것입니다.

다음과 같은 몇 가지 일반적인 질문이 있습니다.

  • 다음과 같은 이유로 gnuplot을 matplotlib로 마이그레이션하려고합니다. gnuplot을 사용하면 실행 파일을 실행하는 컴퓨터에 gnuplot이 설치되어 있어야합니다. 반면에 matplotlib은 파이썬 모듈이므로 다른 컴퓨터에 그래픽 패키지를 설치하는 것에 대해 걱정할 필요가 없습니다. 이 가정이 맞습니까?

  • wxPython GUI 창을 수정하여 matplotlib 플롯을 표시하려면 어떻게해야합니까? matplotlib 플롯을 사용하여 새 패널을 만드는 방법을 알려주는 자습서를 여러 개 찾았지만 단순히 이전 플롯이 있던 위치에 표시하고 싶습니다. 나는 내가 gnuplot에서했던 것처럼 matplotlib이 이미지 파일에 줄거리를 저장할 수 있다고 생각한다. 일반적으로 플롯을 이미지로 저장하고 GUI를 업데이트하는 것이 좋은가요? 아니면 플롯을 업데이트하는 다른 (더 빠른) 베스트 프랙티스가 있습니까? 위의 코드에서와 같이 이미지 파일을 사용할 때의 한 가지 단점은 GUI 창 크기를 조정할 때 크기가 조정되지 않는다는 것입니다.

  • 이것을 실행 파일로 패키지하면 실행 파일이 실행되도록 Windows 컴퓨터에 wxPython/Python을 설치해야합니까?

답변

2

위해 질문을 촬영 :

1.) 예하기 matplotlib는 포함 된 파이썬 모듈입니다. 외부 의존성을 가지고 있지만 Windows에서는 이러한 의존성이 matplotlib 설치와 함께 패키지됩니다. 다른 컴퓨터에 설치할 때 이들에 대해 걱정할 필요가 있습니까? 이는 설치 방법에 따라 다릅니다. exe 파일에 패키지하고 있습니까? 최종 사용자가 Python과 matplotlib을 설치하도록 하시겠습니까? 예를 들어 py2exe를 사용하여 matplotlib를 exe에 패키지화 할 수 있습니다 (here 참조). 물론 백엔드 용 스크립트를 사용자 정의해야합니다. wx.

2) matplotlib가 FigureCanvasWxAgg을 제공하기 때문에 플롯이있는 패널을 보았습니다.이 플롯은 matplotlib에서 좋은 wxPanel에서 파생 된 wxWidget입니다. 그것을 사용하는 것의 이점은 당신이다 can set handlers for stuff like resize and painting.

당신의 wxBitMapButton은 이미지를위한 wxBitmap을 찾고있다. matplotlib 플롯에 파일 핸들 (cStringIO.StringIO)을 지정하여 파일을 디스크에 쓸 필요가 없게 될 수도 있습니다. 또한 크기 조정 이벤트를 연결하여 matplotlib을 사용하여 그림을 적절한 크기로 다시 그릴 수 있습니다. 당신은 FigureCanvasWxAgg를 사용하는만큼 융통성을 가지지 않을 것입니다. wxPython 웹 사이트가 다운 된 것 같아서, 나는 이것을 연구 할 수 없다.

3.) wxPython을 실행 파일로 패키지화 할 수 있습니다. 어떻게 당신이 사용하는 포장기에 따라 다릅니다. 나는 py2exe를 여러 번 해왔다.

+0

이것은 매우 유용합니다. 나는 위의 것을 시도 할 것이다. 감사! – curious