색상을 선택할 수 plt.scatter
있는 c
인수를 전달할 수 있습니다 . 아래 코드는 colors
다이아몬드 색상을 플로팅 색상에 매핑 하는 사전을 정의합니다 .
import matplotlib.pyplot as plt
import pandas as pd
carat = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
price = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
color =['D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G',]
df = pd.DataFrame(dict(carat=carat, price=price, color=color))
fig, ax = plt.subplots()
colors = {'D':'red', 'E':'blue', 'F':'green', 'G':'black'}
ax.scatter(df['carat'], df['price'], c=df['color'].apply(lambda x: colors[x]))
plt.show()
df['color'].apply(lambda x: colors[x])
"다이아몬드"에서 "플로팅"으로 색상을 효과적으로 매핑합니다.
(다른 예제 이미지를 올리지 않은 것에 대해 용서하십시오. 2면 충분하다고 생각합니다. : P)
와 seaborn
기본적으로 더 예쁘게 보이게 만드는 seaborn
래퍼를 사용할 수 있지만 matplotlib
(오피니언 기반, 나는 알고 있습니다 : P) 일부 플로팅 기능도 추가합니다.
이를 위해 seaborn.lmplot
함께 사용할 수 있습니다 fit_reg=False
(이는 일부 회귀를 자동으로 수행하는 것을 방지합니다).
아래 코드는 예시 데이터 세트를 사용합니다. 선택 hue='color'
하면 seaborn에게 색상을 기준으로 데이터 프레임을 분할 한 다음 각각을 플로팅하도록 지시합니다.
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
carat = [5, 10, 20, 30, 5, 10, 20, 30, 5, 10, 20, 30]
price = [100, 100, 200, 200, 300, 300, 400, 400, 500, 500, 600, 600]
color =['D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G',]
df = pd.DataFrame(dict(carat=carat, price=price, color=color))
sns.lmplot('carat', 'price', data=df, hue='color', fit_reg=False)
plt.show()
seaborn
사용 하지 않고pandas.groupby
seaborn을 사용하지 않으려면 pandas.groupby
색상 만 가져온 다음 matplotlib를 사용하여 플로팅 할 수 있지만 이동하면서 수동으로 색상을 할당해야합니다. 아래 예제를 추가했습니다.
fig, ax = plt.subplots()
colors = {'D':'red', 'E':'blue', 'F':'green', 'G':'black'}
grouped = df.groupby('color')
for key, group in grouped:
group.plot(ax=ax, kind='scatter', x='carat', y='price', label=key, color=colors[key])
plt.show()
이 코드는 위와 동일한 DataFrame을 가정하고 color
. 그런 다음 이러한 그룹을 반복하여 각 그룹에 대해 플로팅합니다. 색상을 선택하기 colors
위해 다이아몬드 색상 (예 D
:)을 실제 색상 ( 예 :)에 매핑 할 수 있는 사전을 만들었습니다 red
.