>

hist2d 함수 :

plt.hist2d(x,y , weights=weight)

x 및 y와 가중치는 (n,) 모양의 array_like입니다.

문서에 따르면 출력 중 하나는 다음과 같습니다.

h : 2D array

The bi-dimensional histogram of samples x and y. Values in x are histogrammed along the first dimension and values in y are histogrammed along the second dimension.

이 2D 어레이는 어떻게 생성됩니까? 상상하다

x = np.arange(1,10)
y = np.arange(1,10)
weights = x * y

2D 배열이 어떻게 만들어 졌습니까?

여기 에서 질문 한 내용을 다시 그려보고 있습니다. 내 것이 아닙니다).

  • 답변 # 1

    2D 히스토그램은 1D 히스토그램과 동일하게 작동합니다. 구간을 정의하고 각 데이터 포인트가있는 구간 내부를 찾은 다음 각 구간의 포인트 수를 계산합니다. 히스토그램에 가중치가 부여 된 경우 숫자 만 계산하는 대신 가중치를 합산하십시오.

    예를 들어

    x = [1.6, 2.3, 2.7]
    y = [0.7, 1.8, 1.3]
    
    

    우리는 가장자리를 가진 빈에 그것들을 비우려고합니다

    bins = [0,1,2,3]
    
    

    또한, 당신은 같은 무게를 가질 수 있습니다

    weights = [0.6, 1, 2]
    
    

    상황을 시각화하려면

    sc = plt.scatter(x,y,c=weights, vmin=0)
    plt.colorbar(sc)
    plt.xticks(bins)
    plt.yticks(bins)
    plt.grid()
    plt.show()
    
    

    이제 맨눈으로 히스토그램을 만들 수 있습니다 :

    x = 1..2, y = 0..1에서 한 지점이 있습니다. 이 포인트의 무게는 0.6 입니다  따라서이 빈의 값은 0.6 가됩니다.
    x = 2..3, y = 1..2에는 두 개의 점이 있습니다. 그들은 무게 1  그리고 2 . 따라서 해당 빈의 값은 1+2=3 입니다. .

    다른 모든 빈은 비어 있습니다. 총 히스토그램은 다음과 같습니다.

    [[ 0.0, 0.6, 0.0 ]
     [ 0.0, 0.0, 3.0 ]
     [ 0.0, 0.0, 0.0 ]]
    
    

    이것은 실제로 numpy가 히스토그램을하게 할 때 얻는 것입니다.

    values, _, _ = np.histogram2d(x,y, bins=bins, weights=weights)
    print(values.T)
    
    

    .T 참고  전치;이것은 "x의 값은 첫 번째 차원을 따라 히스토그램되고 y의 값은 두 번째 차원을 따라 히스토그램됩니다"라는 문장입니다. 말하고 싶어.

    plt.hist2d   numpy.histogram2d 의 래퍼입니다 이 배열을 이미지로 플로팅합니다

    h,_, _, image = plt.hist2d(x,y,bins=bins, weights=weights)
    plt.colorbar(image)
    plt.show()
    
    

    값이 컬러로 인코딩 된 곳

관련 자료

  • 이전 angular - 오류 - 'approutingmodule'모듈이 'approutingmodule'모듈을 반복적으로 내 보냅니다
  • 다음 javascript - contenteditable div를 포커스하기위한 for = DIV-ID가있는 HTML (레이블 은 양식 요소 만 지원합니까?)