2013-02-18 2 views
1

필자는 데이터를 계산하고 플롯을 작성하는 여러 가지 플로팅 기능이있는 과학 패키지를 작성했습니다. 종종 한 커브에 여러 커브를 플롯하려는 경우 제대로 처리하는 방법을 모르겠습니다. 코드는 다음과 같을 수 있습니다 :여러 함수를 사용하여 올바르게 플롯하고 선 스타일을 설정하는 방법은 무엇입니까?

plot_temperature_graph_of_day(day='Monday') 
plot_temperature_graph_day(day='Tuesday') 
plot_week_mean_temperature() 
plot_temperature_graph_of_several_days(('Wednesday','Thursday')) 

요점은 내가이 플롯의 각각에 대해 이는 linestyle을 설정할 것입니다 - 처음 세 개의 기능은 각각, 네 번째 두 생성 한 플롯을 생성합니다. 모두 같은 모습으로 들어갑니다. 스타일을 설정하려면, 나는

  • 각 기능을가 pyplot.plot 기능에
  • 돌아 가기 된 Line2D 객체를 줄 것이다 인자 '이는 linestyle'을주고
  • 에게
  • 는하지 마십시오 setp 사용하여 선 스타일을 설정할 수 있습니다 어떤 음모를 꾸미고에 대한 기능 및 데이터 만
  • 공급

당신이 스트랫에 권장 사항이 있습니까 음모를 꾸미고 실제을하는 콜백 함수를 반환 egy?

+2

사용자가 플로팅 프리미티브로 전달할'* args' 및/또는'** kwargs '를 지정하게하는 이유는 무엇입니까? * 및 * 줄 (또는 심지어 축) 인스턴스를 반환합니다. 그들은 그것을 더 꼬집고 싶습니까? –

+0

좋은 소리입니다. 이것은 일반적인 관행입니까 아니면 직접 알아 낸 것입니까? –

+1

이것이 얼마나 일반적인지 모르겠다면, 더 많은 교육을받은 의견을 듣고 싶을 것입니다. 필자가 개인적으로 취하는 조치는 위험을 감수 할 준비가되어있는 경우를 대비하여 사용자에게 적절한 기본 설정과 용기에 대한 모든 액세스 권한을 부여하는 것이 가장 좋습니다. –

답변

1

사용자의 관점에서 본인의 개인적 취향은 적절한 기본 설정과 패키지 내부에 대한 액세스 권한을 가지므로 실제로 필요하거나 원할 경우 수정할 수 있습니다.

이 특별한 경우에는 사용자 중심의 기능을 matplotlib 위에 추가하고 있습니다. 따라서 사용자에게 라인 인스턴스에 대한 액세스 권한을 부여하지 않으면 기본 패키지의 일부 기능을 숨기고 제 의견으로는 거의 항상 나쁜 것입니다. matplotlib 자체가 유용한 *args**kwargs을 제공하기 때문에 사용자의 기능을 받아들이지 않고 기본 플로팅 루틴으로 전달해야하는 이유가 있어야합니다. 사용자가 말도 안되는 주장을하는 경우, 문제가 아니라 자신의 문제입니다. 원하는 경우 플롯 엔진에서 발생한 예외를 잡으려고 노력할 수 있습니다. 당신은 그냥 라인,하지만 완전한 axes 인스턴스를하지 반환하는 경우

또한, 당신은 줄거리에 그리드를 추가하는 그녀의 상사에 의해 지시 된 것 어딘가에 가난한 대학원생, 땀을 많이 절약 할 수 있습니다.

관련 문제