사전과 같은 컨테이너를 파이썬의 기존 객체에 추가하는 것이 어떻습니까? 난 그냥하기 matplotlib에서 Line2D
객체와 장난되었고, 나는 다음과 같은 방법을 통해 사전을 추가 할 수 있음을 발견파이썬에서 기존 개체에 컨테이너를 추가하는 간단하면서도 적절한 방법은 무엇입니까?
import matplotlib as mpl
line2D_obj = mpl.lines.Line2D([0,1], [0,0])
line2D_obj.labels = dict(text = '$\delta$', ndx = 30, leader_length = 15, leader_angle = 120)
line2D_obj
인스턴스화 된 방법 .labels
이 없었다. Line2D
개체에 일부 데이터를 저장하기 때문에 방금 .labels
을 만들었습니다. 이것은 좋은 접근 방법입니까? 그렇지 않다면, 당신은 또 무엇을 제안합니까?
문제가되는 경우, 내가 이것을 조사하는 이유는 matplotlib의 Line2D
개체에 레이블을 지정하는 사용자 지정 함수를 만드는 중입니다. 이전에는 라벨링 기능에 중첩 된 목록을 넘겨 주겠다고 생각했습니다.
labels = [[[axis1_curve_1_label], [axis1_curve2_label]], [[axis2_curve1_label]]]
그러나 이것은 지저분하고 따라하기 어렵습니다. 이제는 더 좋은 방법이 있다고 생각합니다. 플롯 팅 코드는 데이터 축을 data_ax
축의 목록으로 출력하므로 Line2D
개체는 lines
이라는 목록으로 잘 정리되어 있습니다. 내가 데이터를 2 축에 곡선 3에 레이블을 원하는 경우 예를 들어, 난 그저 내가 라벨 나는 어떤 곡선이 매우 분명하다
data_ax[2].lines[3].labels = dict(text = '$\delta$', ndx = 30, leader_length = 15, leader_angle = 120)
입력 할 수 있습니다. 그런 다음 data_ax
객체를 내 라벨 기능에 전달하면 각 곡선의 라벨 정보를 선택할 수 있습니다.
'__init__'안에 'self.foo = {}'속성을 만드는 일반적인 방법은 실제로 여기서하는 것과 똑같은 일을 실제로합니다. 차이점은 사람들은'__init__'에서 생성 된 속성을 볼 것으로 기대하지만 클래스 정의 외부의 임의의 코드에서 속성을 볼 것으로 예상하지 않는다는 것입니다. – abarnert