시각화 컬러맵

ianman99 ㅣ 2024. 4. 27. 10:43

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import make_axes_locatable
import matplotlib.cm as cm
import matplotlib.colors as mcl

# Creating a DataFrame with 20 rows and 5 columns
np.random.seed(0)
df = pd.DataFrame(np.random.rand(20, 5), columns=['A', 'B', 'C', 'D', 'E'])
data = {'C1': ['A', 'B', 'C', 'D', 'E'], 'C2': [1, 2, 3, 4, 5]}
df2 = pd.DataFrame(data)

# Normalize C2 values between 0 and 1 to map to the colormap
norm = plt.Normalize(df2['C2'].min(), df2['C2'].max())
cmap = plt.get_cmap('bwr') # 컬러바 종류 설정
cmap = cmap.reversed() # 색상을 반대로 적용하기


fig = plt.figure(figsize=(16, 8))

for column in df.columns[0:]:
    score_row = df2[df2['C1'] == column] # df2 의 C1 열과 df의 column이 같은 df2의 행을 찾아 저장
    score = score_row['C2'].iloc[0] # score_row에서 C2 열의 0번째 행 데이터 저장
    color = cmap(norm(score))  # Using the normalized score to get a color from the colormap
    plt.plot(df[column], label=column, color=color, alpha=1, lw=2)

colormapping = cm.ScalarMappable(norm=norm, cmap=cmap) # 컬러바 생성
cbar = fig.colorbar(colormapping, ax=plt.gca(), pad=0.01) # 컬러바 삽입
plt.tight_layout()
plt.show()