Seaborn을 사용하여 다른 색상 팔레트 만들기
이 기사에서는 Seaborn 색상 팔레트의 다양한 옵션을 살펴봅니다. Seaborn에서 사용자 정의 색상 팔레트를 만드는 방법도 보여줍니다.
Seaborn을 사용하여 다양한 색상 팔레트 만들기
Seaborn을 가져와서 seaborn
으로 저장하는 것으로 시작하겠습니다. 또한 tips
라는 Seaborn 라이브러리에서 일부 데이터를 로드합니다.
import seaborn as seaborn
customer_bill
데이터 프레임의 상단을 살펴보고 각 고객이 남긴 청구서 금액과 팁 금액이 서로 다른지 확인하십시오. 우리는 또한 요일이나 식사가 제공되는 시간과 같은 다른 특성을 가지고 있습니다.
customer_bill = seaborn.load_dataset("tips")
customer_bill.head()
이제 set_style
을 darkgrid
로 설정하고 scatterplot
기능을 사용하여 산점도를 생성합니다.
이 scatterplot
함수에서 x축은 total_bill
을 전달했고 y축은 tip
을 나타냅니다. data
속성은 customer_bill
데이터 프레임에서 가져옵니다.
day
와 같은 범주형 열인 다른 열을 hue
속성에 전달할 수도 있습니다. 이것은 요일마다 다른 색상으로 분할됩니다.
import seaborn as seaborn
# collect data from seaborn
customer_bill = seaborn.load_dataset("tips")
customer_bill.head()
# set grid style
seaborn.set_style("darkgrid")
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, hue="day")
# uncomment the below code if you are not using jupyter notebook
# import matplotlib.pyplot as plot
# plot.show()
Seaborn은 산점도에서 기본 색상 팔레트를 사용합니다. color_palette()
함수를 사용하여 기본 Seaborn의 팔레트를 확인할 수 있습니다.
seaborn.color_palette()
그러면 Seaborn이 처음 네 가지 색상에 사용하는 기본 색상 팔레트가 표시됩니다.
color_palette()
함수에서 여러 옵션을 전달할 수 있습니다. Pastel2
와 같은 유효한 문자열 이름을 전달하면 다른 색상 팔레트가 표시됩니다.
seaborn.color_palette("Pastel2")
다른 이름의 색상 팔레트를 사용할 수 있습니다. 이 palette
인수를 추가하고 유효한 팔레트 이름과 동일하게 설정하기만 하면 됩니다.
seaborn.set_style("whitegrid")
seaborn.scatterplot(
x="total_bill", y="tip", data=customer_bill, hue="day", palette="Pastel2"
)
현재 Seaborn 내에서 사용할 수 있는 170개의 서로 다른 명명된 색상 팔레트가 있습니다. 이름을 잊어버린 경우 찾아볼 필요가 없습니다. 다음과 같은 잘못된 팔레트 이름을 전달할 수 있습니다.
seaborn.scatterplot(
x="total_bill", y="tip", data=customer_bill, hue="day", palette="GH"
)
출력:
_r
과 함께 이러한 많은 것을 알 수 있습니다. 이들은 같은 팔레트이지만 순서가 반대입니다.
seaborn.color_palette("Pastel2_r")
팔레트 인수를 전달하지 않으면 Seaborn이 기본 팔레트 색상을 설정합니다.
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill)
이 점의 색상을 업데이트하려면 이를 color
으로 참조합니다. 팔레트가 아닙니다. 전체 그림에 하나의 색상만 있기 때문에 색상이지만 이 색상을 파란색 문자열로 전환하면 어떻게 되는지 살펴보세요.
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color="blue")
Seaborn 블루가 아니라 Matplotlib 블루입니다.
color_palette()
함수를 사용하여 Seaborn 파란색을 추출하고 처음 두 색상을 선택한다고 가정합니다. 이것은 우리에게 첫 번째 튜플인 파란색을 제공하고 두 번째 튜플인 주황색을 제공합니다.
BLUE, ORANGE = seaborn.color_palette()[:2]
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color=BLUE)
Seaborn에서 사용자 정의 색상 팔레트 만들기
Seaborn에서 단일 색상을 기반으로 하거나 여러 색상을 혼합하여 사용자 정의 색상 팔레트를 만들 수 있습니다. 하나의 특정 카테고리를 강조하는 하이라이트 팔레트를 만들 수도 있습니다.
Seaborn으로 사용자 정의 팔레트를 만들 수 있는 몇 가지 방법이 있습니다. 이 팔레트에서 추가 색상이 필요한 경우 정수를 전달할 수 있습니다.
seaborn.color_palette("Pastel2", 10)
light_palette()
함수에 액세스하여 색상 팔레트를 만들 수도 있으며 이 메서드는 이름이 지정된 하나의 색상을 허용합니다. 이 팔레트에는 한 가지 색상의 다양한 음영이 포함되어 있습니다.
seaborn.light_palette("gray")
Seaborn에는 어두운 팔레트를 생성하는 dark_palette()
함수가 있습니다. 색상은 더 어두운 음영에서 시작하여 명명된 색상까지 올라갑니다.
seaborn.dark_palette("red")
Seaborn은 또한 blend_palette()
함수를 사용하여 발산 팔레트를 생성할 수 있도록 하며 인수는 색상 목록이 됩니다. 이렇게 하면 목록에 전달한 모든 색상을 혼합하는 팔레트가 생성됩니다.
seaborn.blend_palette(["blue", "red", "green"], 12)
팔레트 인수에 blend_palette()
를 전달합시다. blend_palette()
의 기본 색상 수가 6개이기 때문에 이 작업을 수행할 때 오류가 발생할 수 있지만 우리의 일 열에는 4개의 다른 범주만 있습니다.
seaborn.scatterplot(
x="total_bill",
y="tip",
data=customer_bill,
hue="day",
palette=seaborn.blend_palette(["green", "red"]),
)
출력:
day
열 범주가 있으므로 정수를 전달해야 합니다.
seaborn.scatterplot(
x="total_bill",
y="tip",
data=customer_bill,
hue="day",
palette=seaborn.blend_palette(["green", "red"], 4),
)
Seaborn은 하나 또는 두 개의 범주를 강조하고 싶을 때마다 사용할 하이라이트 팔레트를 사용할 수 있는 옵션을 제공합니다. 특별한 날마다 팔레트 사전을 만들 것입니다.
P_DICT = {k: "gray" for k in customer_bill.day.unique()}
P_DICT
그날의 이름이 이 사전의 열쇠가 될 것입니다.
그림에서 Friday
를 강조 표시하려면 관심 있는 범주에 red
라는 새 값을 할당할 수 있습니다.
P_DICT["Fri"] = "red"
seaborn.scatterplot(
x="total_bill", y="tip", data=customer_bill, hue="day", palette=P_DICT
)
빨간색으로 칠해진 금요일을 제외하고 모든 요일이 회색임을 알 수 있습니다. 특정 날짜를 강조 표시하려는 경우 유용할 수 있습니다.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn