복붙노트

[PYTHON] 파이썬의 분산 형 플롯 및 색상 매핑

PYTHON

파이썬의 분산 형 플롯 및 색상 매핑

난 점들 x와 y가 numpy 배열에 저장되어있다. 이들은 x (t)와 y (t)를 나타내며, 여기서 t = 0 ... T-1

나는 산점도를 사용하여 음모를 꾸미고있다.

import matplotlib.pyplot as plt

plt.scatter(x,y)
plt.show()

시간을 나타내는 색상 맵을 원합니다 (따라서 numpy 배열의 인덱스에 따라 점을 채색합니다).

가장 쉬운 방법은 무엇입니까?

해결법

  1. ==============================

    1.여기에 예제가있다.

    여기에 예제가있다.

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.random.rand(100)
    y = np.random.rand(100)
    t = np.arange(100)
    
    plt.scatter(x, y, c=t)
    plt.show()
    

    여기서 당신은 [1, 2, ..., 100]의 배열 인 인덱스 t를 기반으로 색상을 설정합니다.

    아마도 이해하기 쉬운 예제는 약간 더 간단 할 것입니다.

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.arange(100)
    y = x
    t = x
    plt.scatter(x, y, c=t)
    plt.show()
    

    c로 전달하는 배열은 특정 순서 또는 유형을 가질 필요가 없습니다. 즉,이 예제에서와 같이 정렬되거나 정수 일 필요는 없습니다. 플로팅 루틴은 c의 최소값 / 최대 값이 색상 맵의 맨 아래 / 상단에 해당하도록 색상 맵의 크기를 조정합니다.

    추가하여 색상 맵을 변경할 수 있습니다.

    import matplotlib.cm as cm
    plt.scatter(x, y, c=t, cmap=cm.cmap_name)
    

    매트랩을 cmap = "cmap_name"으로 호출 할 수 있으므로 matplotlib.cm을 가져 오는 것은 선택 사항입니다. 각각의 모습을 보여주는 색상 맵의 참조 페이지가 있습니다. 또한 단순히 cmap_name_r로 호출하여 색상 맵을 뒤집을 수 있음을 알고 있습니다. 따라서

    plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
    # or
    plt.scatter(x, y, c=t, cmap="cmap_name_r")
    

    작동합니다. 예는 "jet_r"또는 cm.plasma_r입니다. 다음은 새로운 1.5 컬러 맵 viridis의 예제입니다.

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.arange(100)
    y = x
    t = x
    fig, (ax1, ax2) = plt.subplots(1, 2)
    ax1.scatter(x, y, c=t, cmap='viridis')
    ax2.scatter(x, y, c=t, cmap='viridis_r')
    plt.show()
    

    다음을 사용하여 색상 막대를 추가 할 수 있습니다.

    plt.scatter(x, y, c=t, cmap='viridis')
    plt.colorbar()
    plt.show()
    

    숫자와 하위 그림을 명시 적으로 사용하는 경우 (예 : fig, ax = plt.subplots () 또는 ax = fig.add_subplot (111)), 색상 막대를 추가하는 것은 좀 더 복잡 할 수 있습니다. 좋은 예는 여기에서 하나의 서브 플롯 컬러 바를 찾고 여기에서 2 개의 서브 플롯은 하나의 컬러 바를 찾습니다.

  2. ==============================

    2.위의 wflynny의 답변에 추가하려면 여기에서 사용 가능한 색상 맵을 찾으십시오.

    위의 wflynny의 답변에 추가하려면 여기에서 사용 가능한 색상 맵을 찾으십시오.

    예:

    import matplotlib.cm as cm
    plt.scatter(x, y, c=t, cmap=cm.jet)
    

    또는 대안 적으로,

    plt.scatter(x, y, c=t, cmap='jet')
    
  3. from https://stackoverflow.com/questions/17682216/scatter-plot-and-color-mapping-in-python by cc-by-sa and MIT license