복붙노트

[PYTHON] matplotlib 색상 표로 seaborn color_palette

PYTHON

matplotlib 색상 표로 seaborn color_palette

Seaborn은 color_palette라는 함수를 제공합니다.이 함수를 사용하면 플롯을위한 새로운 color_palettes를 쉽게 만들 수 있습니다.

colors = ["#67E568","#257F27","#08420D","#FFF000","#FFB62B","#E56124","#E53E30","#7F2353","#F911FF","#9F8CA6"]

color_palette = sns.color_palette(colors)

나는 matplotlib에서 사용할 수있는 cmap로 color_palette를 변환하고 싶지만 어떻게 할 수 있는지 알지 못합니다.

슬프게도 "cubehelix_palette", "light_palette"...와 같은 함수는 "as_cmap"매개 변수를가집니다. "color_palette"는 불행히도 없습니다.

해결법

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

    1.seaborn 팔레트의 색상 목록을 matplolib의 색상 맵으로 변환해야합니다 (제안 된 변경 사항은 @RafaelLopes에서 thx로 변경).

    seaborn 팔레트의 색상 목록을 matplolib의 색상 맵으로 변환해야합니다 (제안 된 변경 사항은 @RafaelLopes에서 thx로 변경).

    import seaborn as sns
    import matplotlib.pylab as plt
    import numpy as np
    from matplotlib.colors import ListedColormap
    
    # construct cmap
    flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
    my_cmap = ListedColormap(sns.color_palette(flatui).as_hex())
    
    N = 500
    data1 = np.random.randn(N)
    data2 = np.random.randn(N)
    colors = np.linspace(0,1,N)
    plt.scatter(data1, data2, c=colors, cmap=my_cmap)
    plt.colorbar()
    plt.show()
    

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

    2.색상 팔레트를 생성하는 대부분의 해상 메소드에는 선택적 인수 as_cmap이 있으며이 인수는 기본적으로 False입니다. Matplotlib 색상 맵을 직접 가져 오는 데 사용할 수 있습니다.

    색상 팔레트를 생성하는 대부분의 해상 메소드에는 선택적 인수 as_cmap이 있으며이 인수는 기본적으로 False입니다. Matplotlib 색상 맵을 직접 가져 오는 데 사용할 수 있습니다.

    import seaborn as sns
    import matplotlib.pylab as plt
    import numpy as np
    
    # construct cmap
    my_cmap = sns.light_palette("Navy", as_cmap=True)
    
    N = 500
    data1 = np.random.randn(N)
    data2 = np.random.randn(N)
    colors = np.linspace(0,1,N)
    plt.scatter(data1, data2, c=colors, cmap=my_cmap)
    plt.colorbar()
    plt.show()
    

  3. ==============================

    3.첫 번째 대답은 어떻게 든 올바르지 만 너무 많은 불필요한 정보로 너무 길다. 정확하고 간단한 대답은 다음과 같습니다.

    첫 번째 대답은 어떻게 든 올바르지 만 너무 많은 불필요한 정보로 너무 길다. 정확하고 간단한 대답은 다음과 같습니다.

    sns.color_palette ()를 matplotlib 호환 cmap으로 변환하려면 두 줄의 코드가 필요합니다.

    from matplotlib.colors import ListedColormap
    cmap = ListedColormap(sns.color_palette())
    
  4. ==============================

    4.추가 팁 - 연속 컬러 바 / 컬러 맵을 원할 경우, 시보른에서 필요로하는 색상 수 256을 더하면 colorcheme이 훨씬 도움이됩니다.

    추가 팁 - 연속 컬러 바 / 컬러 맵을 원할 경우, 시보른에서 필요로하는 색상 수 256을 더하면 colorcheme이 훨씬 도움이됩니다.

    cmap = ListedColormap(sns.color_palette("Spectral",256))   
    
  5. from https://stackoverflow.com/questions/37902459/seaborn-color-palette-as-matplotlib-colormap by cc-by-sa and MIT license