이 글은 데이터 시각화 처리를 위한 산점도, 꺾은선형 차트, 막대형 차트 등 Seaborn과 관련된 문제를 주로 소개하는 python에 대한 관련 지식을 제공합니다. 살펴보겠습니다. .
추천 학습: python 비디오 튜토리얼
설치:
pip install seaborn
I 가져오기:
seaborn을 sns로 가져오기
공식적으로 시작하기 전에 먼저 다음 코드를 사용하여 쉽게 표시하고 사용할 수 있도록 데이터 세트를 준비합니다.
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snspd.set_option('display.unicode.east_asian_width', True)df1 = pd.DataFrame( {'数据序号': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], '厂商编号': ['001', '001', '001', '002', '002', '002', '003', '003', '003', '004', '004', '004'], '产品类型': ['AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'], 'A属性值': [40, 70, 60, 75, 90, 82, 73, 99, 125, 105, 137, 120], 'B属性值': [24, 36, 52, 32, 49, 68, 77, 90, 74, 88, 98, 99], 'C属性值': [30, 36, 55, 46, 68, 77, 72, 89, 99, 90, 115, 101] })print(df1)
는 다음과 같이 데이터 세트를 생성합니다.
sns.set_style() 메소드는 스타일, 그리고 여기에 내장 스타일은 배경색을 사용하여 이름을 나타내지만 실제 내용은 배경색으로 제한되지 않습니다. ㅋㅋㅋ 흰색 흰색 배경
진드기 주위에 진드기가 있는 흰색 배경
sns.set() sns.set_style(“darkgrid”)
seaborn 라이브러리는 matplotlib 라이브러리를 기반으로 캡슐화되어 있으며, 캡슐화된 스타일로 인해 우리의 드로잉 작업이 더욱 편리해집니다. matplotlib 라이브러리에서 일반적으로 사용되는 명령문은 seaborn 라이브러리를 사용할 때에도 여전히 유효합니다.
If 스타일이 뒤에 설정되어 있으면 설정된 글꼴이 설정된 스타일을 재정의하므로 경고가 생성됩니다. 다른 속성도 마찬가지입니다.
글꼴 등 기타 스타일 관련 속성을 설정할 때 주의할 점은 이러한 코드가 sns.set_style() 뒤에 작성되어야 유효하다는 점입니다. 예를 들어, 글꼴을 굵게 설정하는 코드(중국어 왜곡 문자 방지):
plt.rcParams['font.sans-serif'] = ['SimHei']
3.2 테두리 제어
# 移除顶部和右部边框,只保留左边框和下边框sns.despine()# 使两个坐标轴相隔一段距离(以10长度为例)sns.despine(offet=10,trim=True)# 移除左边框sns.despine(left=True)# 移除指定边框 (以只保留底部边框为例)sns.despine(fig=None, ax=None, top=True, right=True, left=True, bottom=False, offset=None, trim=False)
replot 메소드의 매개변수 종류는 기본적으로 'scatter'로 설정되어 있는데, 이는 산점도를 그리는 것을 의미합니다.① A 속성 값과 데이터 시퀀스 번호, 빨간색 분산점, 회색 그리드에 대한 산점도를 그리고 왼쪽과 아래쪽 테두리를 유지합니다.색상 매개변수는 색상으로 구분되는 이 1차원으로 표현됩니다.
plt.show()
② A 속성 값과 데이터 시퀀스 번호에 대한 산점도를 그립니다. 산점은 다양한 제품 유형에 따라 다른 색상을 표시합니다.
흰색 그리드, 왼쪽 및 아래쪽 테두리:
sns.set_style('whitegrid ' )
plt.rcParams['font.sans-serif'] = ['SimHei']
sns.relplot(x='데이터 일련번호', y='속성값',hue='제품 유형', data =df1 )
plt.show()
③ A 속성, B 속성, C 속성 세 필드의 값을 서로 다른 스타일로 동일한 그래프에 플롯합니다(산점도 그리기), x축 데이터는 [0,2,4,6,8...]
틱 스타일(네 방향 모두의 프레임 선이 필요함)이고 글꼴은 이탤릭체
sns.set_style(' 진드기')
plt.rcParams['font.sans-serif'] = ['STKAITI']
df2 = df1.copy()
df2.index = list(range(0, len(df2)*2, 2) )
dfs = [df2['A 속성 값'], df2['B 속성 값'], df2['C 속성 값']]
sns.scatterplot(data=dfs)
plt.show()
선 차트를 그리려면 seaborn 라이브러리를 사용하세요. replot() 메서드나 lineplot() 메서드를 사용할 수 있습니다.
sns.replot()은 기본적으로 분산형 차트를 그립니다. 선 차트를 그리려면 매개변수 종류를 "line"으로 변경하면 됩니다.
①
요구 사항: A 속성 값과 데이터 일련 번호,
회색 그리드, 전역 글꼴은 기울임꼴로 구성된 선형 차트를 그리고 제목의 글꼴 크기, 2축 레이블,
및 좌표계 사이의 거리를 조정합니다. 및 캔버스 가장자리(글꼴이 완전히 표시되지 않기 때문에 거리가 설정됨):
sns.set(rc={'font.sans-serif': "STKAITI"})
sns. relplot(x='데이터 일련번호', y='속성값', data=df1, color='purple', kind='line')
plt.title("선 차트 그리기",fontsize=18)
plt.xlabel('num', 글꼴 크기=18)
plt.ylabel('속성 값', 글꼴 크기=16)
plt.subplots_adjust(왼쪽=0.15, 오른쪽=0.9, 아래쪽=0.1, 위쪽=0.9)
plt.show()
②
요구 사항: 다양한 제품 유형(한 그림에 세 줄), 흰색 격자 스타일 및 기울임꼴 글꼴에 대한 A 속성 폴리라인을 그립니다.
sns.set_style("whitegrid")
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.relplot(x='데이터 일련 번호', y='A 속성 value ',hue='제품 유형', data=df1, kind='line')
plt.title("선 차트 그리기",fontsize=18)
plt.xlabel('num',fontsize=18)
plt.ylabel('속성 값', 글꼴 크기=16)
plt.subplots_adjust(left=0.15, right=0.9, Bottom=0.1, top=0.9)
plt.show()
③
요구 사항: 동일한 그래프에 세 필드 A, B, C의 값을 서로 다른 스타일로 플롯합니다(선 차트 그리기). x축 데이터는 [0,2,4,6,8입니다. …]
Darkgrid 스타일(네 방향 모두의 프레임 선이 필요함), 글꼴은 기울임꼴이고 x축 레이블, y축 레이블 및 제목이 추가됩니다. 가장자리 거리가 적절합니다.
sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
df2 = df1.copy()
df2.index = list(range( 0, len(df2)*2, 2))
dfs = [df2['A 속성 값'], df2['B 속성 값'], df2['C 속성 값']]
sns.relplot(data= dfs, kind="line")
plt.title("선형 차트 그리기",fontsize=18)
plt.xlabel('num',fontsize=18)
plt.ylabel('속성 값',fontsize= 16)
plt.subplots_adjust(왼쪽=0.15, 오른쪽=0.9, 아래쪽=0.1, 위쪽=0.9)
plt.show()
3
여러 하위 플롯
가로 다중 하위 그래프 col
sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.relplot(data=df1, x=" A 속성값", y="B 속성값", kind="line", col="제조업체 번호")
plt.subplots_adjust(left=0.05, right=0.95, Bottom=0.1, top=0.9)
plt. show()
세로 다중 하위 사진 행
sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.relplot(data=df1, x="A 속성값", y="B 속성값", kind="line", row="제조업체 번호")
plt.subplots_adjust(left=0.15, right=0.9, Bottom= 0.1, top = 0.95)
PLT.SHOW ()
lineplot() 메소드를 사용하여 선 차트를 그립니다. 기타 사항은 기본적으로 동일합니다. 예시 코드는 다음과 같습니다.
sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.lineplot(x=' 데이터 일련번호', y='속성값', data =df1, color='purple')
plt.title("꺾은선형 차트 그리기",fontsize=18)
plt.xlabel('num',fontsize= 18)
plt.ylabel('A 속성 값', 글꼴 크기= 16)
plt.subplots_adjust(left=0.15, right=0.9, Bottom=0.1, top=0.9)
plt.show()
sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
df2 = df1.copy()
df2.index = list(range(0, len(df2)*2, 2))
dfs = [df2 ['A 속성 값'], df2['B 속성 값'], df2['C 속성 값']]
sns.lineplot(data=dfs)
plt.title("선 차트 그리기", 글꼴 크기=18)
plt.xlabel('num', 글꼴 크기=18)
plt.ylabel('속성 값', 글꼴 크기=16)
plt.subplots_adjust(왼쪽 =0.15, 오른쪽=0.9, 아래쪽=0.1, 위쪽=0.9)
plt.show()
bins=6은 그림을 6개의 간격으로 나누는 것을 의미합니다.
Rug=True는 x축에 작고 얇은 관찰 막대를 표시하는 것을 의미합니다. kde=True는 커널 밀도 곡선을 표시하는 것을 의미합니다
plt.rcParams['font.sans-serif'] = [ 'STKAITI']히스토그램을 그려 커널 밀도 곡선을 표시합니다.sns.displot(data=df1[['C 속성 값']], bins=6, Rug=True , kde=True) plt.title("히스토그램", 글꼴 크기=18)
plt .xlabel('C 속성 값', 글꼴 크기=18)
plt.ylabel('수량', 글꼴 크기=16)
plt.subplots_adjust (왼쪽=0.15, 오른쪽=0.9, 아래쪽=0.1, 위쪽=0.9)
plt.show()
sns.set_style('darkgrid')
plt.rcParams['font .sans-serif'] = ['STKAITI']np.random.seed(13) Y = np.random.randn(300 )
sns.displot(Y, bins=9, Rug=True, kde=True )
plt.title("Histogram", 글꼴 크기=18)
plt.xlabel('C 속성 값', 글꼴 크기=18)
plt .ylabel('수량', 글꼴 크기=16)
plt.subplots_adjust(왼쪽= 0.15, 오른쪽=0.9, 아래쪽=0.1, 위쪽=0.9)
plt.show()
~ ~ ~ ~ 7. 막대 차트 그리기 barplot()
barplot()을 사용하여 막대 차트를 그립니다. 방법
제품 유형 필드 데이터를 x축 데이터로 사용하고 A 속성 값 데이터를 y축 데이터로 사용합니다. 다양한 제조업체 번호 필드에 따라 분류합니다.sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.barplot(x="제품 유형", y='속성 값', hue="제조업체 번호", data=df1)
plt.title("막대 차트", 글꼴 크기=18)
plt.xlabel('제품 유형', 글꼴 크기=18)
plt.ylabel('수량', 글꼴 크기 = 16)
plt.subplots_adjust(left=0.15, right=0.9, Bottom=0.15, top=0.9)
plt.show()
선형 회귀 플롯 모델은 lmplot() 메서드를 사용합니다. 주요 매개변수는 x, y, 데이터입니다. 각각 x축 데이터, y축 데이터, 데이터 세트 데이터를 나타냅니다.
또한 위에서 언급한 것처럼 색상을 통해 분류 변수를 지정할 수도 있습니다.
col을 통해 열 분류 변수를 지정하여 가로 다중 하위 그래프를 그립니다.
행을 통해 행 분류 변수를 지정하여 세로 다중 하위 그래프를 그립니다. 각 행의 이미지는 col_wrap을 통해 제어할 수 있습니다.
하위 이미지의 높이는 크기를 통해 제어할 수 있습니다.
점의 모양은 마커를 통해 제어할 수 있습니다.
X 속성 값과 Y 속성 값에 대해 선형 회귀를 수행해 보겠습니다. 코드는 다음과 같습니다.
sns.set_style('darkgrid')plt.rcParams['font.sans-serif'] = [ 'STKAITI'] sns.lmplot(x="A 속성 값", y='B 속성 값', data=df1)
plt.title("선형 회귀 모델", 글꼴 크기=18)
plt.xlabel(' A 속성 값' , 글꼴 크기=18)
plt.ylabel('B 속성 값', 글꼴 크기=16)
plt.subplots_adjust(left=0.15, right=0.9, Bottom=0.15, top=0.9)
plt.show( )
A 속성 값과 B 속성 값에 대한 커널 밀도 플롯을 그립니다.
주변 그림자를 표시하려면 음영을 True로 설정하고 그렇지 않으면 선만 표시합니다.
sns.set_style('darkgrid')plt.rcParams['font.sans-serif'] = ['STKAITI'] sns.kdeplot(df1["A 속성 값"], Shade=True, data=df1, color='r')
sns.kdeplot(df1["B 속성 값"], Shade=True, data=df1, color='g')
plt.title("커널 밀도 플롯", 글꼴 크기 =18)
plt.
9.2 한계 커널 밀도 플롯
한계 커널 밀도 플롯을 그리는 데 sns.jointplot() 메소드가 사용됩니다. 매개변수 종류는 "kde"여야 합니다. 이 방법을 사용하면 기본적으로 어두운 스타일이 사용됩니다. 다른 스타일을 수동으로 추가하는 것은 권장되지 않습니다. 그렇지 않으면 이미지가 제대로 표시되지 않을 수 있습니다.
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.jointplot(x=df1["A 속성 값"], y=df1["B 속성 값"], kind=“kde”, space=0)~ ~ ~
기본 매개변수는 x, y, 데이터입니다.10 상자 그림을 그리려면 boxplot()
boxplot() 메서드를 사용합니다. 상자 그림을 그립니다.
또한 분류 필드를 나타내는
색상이전 섹션의 데이터 양이 표시할 만큼 크지 않기 때문에 여기에 또 다른 데이터 세트가 있습니다:
np.random.seed(13)
Y = np.random.randint(20 , 150, 360)
df2 = pd.DataFrame( {'제조업체 번호': ['001', '001', '001', '002', '002', '002', '003', '003 ', '003' , '004', '004', '004'] * 30,
'XXX 속성 값': Y } )
생성된 후 상자 그림 그리기를 시작합니다.
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.boxplot(x='Product Type', y ='XXX 속성 값', data=df2)
plt.show()
x축과 y축 데이터를 교환한 후:
plt.rcParams['font.sans - serif'] = ['STKAITI']
sns.boxplot(y='제품 유형', x='XXX 속성 값', data=df2)
plt.show()
박스 플롯을 볼 수 있습니다 방향도 변경됩니다.
제조업체 번호를 분류 필드로 사용:
plt.rcParams['font.sans-serif'] = [' STKAITI']
sns.boxplot (x='제품 유형', y='XXX 속성 값', data=df2,hue="제조업체 번호")
plt.show()
hhh
Violin 플롯은 상자 그림과 커널 밀도의 기능을 결합합니다. 데이터의 분포 형태를 표시하는 플롯입니다.
plt.rcParams['font.sans-serif'] = ['STKAITI'] sns.violinplot(x='제품 유형', y='XXX 속성 값', data=df2)
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.violinplot(x='XXX 속성 값', y='제품 유형' , data=df2)plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.violinplot(x='제품 유형' , y='XXX 속성 값', data=df2,hue="제조업체 번호")
∣ ∣ ∣
12 히트맵 그리기()
pd로 팬더 가져오기 plt로 matplotlib.pyplot 가져오기
sns로 seaborn 가져오기sns.set() plt.Figure(figsize=(6,6))
plt.rcParams['font.sans -serif'] = ['STKAITI']
s1 = np.random.randint(0, 200, 33)
s2 = np.random.randint(0, 200, 33)
s3 = np.random.randint( 0, 200, 33)
s4 = np.random.randint(0, 200, 33)
s5 = np.random.randint(0, 200, 33)
s6 = np.random.randint(0, 200, 33 )
s7 = np.random.randint(0, 200, 33)
data = pd.DataFrame(
{'1': s1,
'2': s2,
'3': s3,
'4': s4,
'five':s5,
'six':s6,
'seven':s7
}
)
plt.title('Double Color Ball Heat Map')
sns.heatmap(data, annot=True , fmt ='d', lw=0.5)
plt.xlabel('당첨 숫자')
plt.ylabel('이중 컬러 볼 번호')
x = ['1위', '2위', '3위 위치 비트', '4번째 비트', '5번째 비트', '6번째 비트', '7번째 비트']
plt.xticks(range(0, 7, 1), x, ha='left')
plt.show ()
추천 학습: python 비디오 튜토리얼
위 내용은 Python의 Seaborn에 대한 자세한 설명(데이터 시각화)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!