대부분의 Matplotlib 유틸리티는 pyplot하위 모듈 아래에 있으며 일반적으로 plt별칭 으로 가져옵니다.
(plt말고 다른 별칭을 사용할 수도 있습니다.)
import matplotlib.pyplot as plt
앞으로 matplotlib을 풀네임으로 안적고 plt만 입력해도 사용 가능합니다.
import matplotlib.pyplot as plt # plt 별칭 사용import numpy as np
xpoints = np.array([0, 10]) # x축 범위
ypoints = np.array([0, 300]) # y축 범위
plt.plot(xpoints, ypoints) # plot 그리기
plt.show() # 화면에 표시
4. Matplotlib Plotting
4-1. x 및 y 포인트 플로팅
plot()함수 : 다이어그램에서 포인트 (마커)를 그리는 데 사용됩니다.
plot() 함수는 점과 점을 선으로 이어줍니다.
매개변수 1 : x 축의 점을 포함하는 배열
매개변수 2 : y 축의 점을 포함하는 배열
다음은 (3,3)에서 (7,10)의 선을 그려보겠습니다.
import matplotlib.pyplot as plt
import numpy as np
xpoints = np.array([3, 7]) # x축 범위
ypoints = np.array([3, 10]) # y축 범위
plt.plot(xpoints, ypoints) # 선 그리기
plt.show() # 화면에 표시
4-2. 선없이 플로팅
선으로 플로팅 하는 것이 아닌 점으로 플로팅 하는 방식입니다.
plot에 매개변수 'o'를 주면 됩니다.
다음은 (3,3)에서 (7,10)에 점을 그려보겠습니다.
import matplotlib.pyplot as plt
import numpy as np
xpoints = np.array([3, 7])
ypoints = np.array([3, 10])
plt.plot(xpoints, ypoints, 'o') # 'o' 매개변수 추가
plt.show()
다음은 전체 그림에 대한 제목을 추가한 예시입니다.
- 전체 그림에 대한 제목 : MY SHOP
#plot 1:x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x,y)
plt.title("SALES")
#plot 2:x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("INCOME")
plt.suptitle("MY SHOP") # 전체 그림에 대한 제목 추가
plt.show()
10. Matplotlib Scatter
10-1. 산점도 생성
Pyplot을 사용하면 scatter()함수를 사용하여 산점도를 그릴 수 있습니다.
scatter() : 각 관측 값에 대해 하나의 점을 표시합니다.
길이가 같은 두 개의 배열이 필요합니다.
하나는 x축 값이고 다른 하나는 y축 값입니다.
다음은 산점도를 구현한 예시입니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y) # x와 y를 이용하여 산점도 생성
plt.show()
더 짧은 방식으로 c 인수를 사용하여 각 산점도에 대해 고유 한 색상을 설정할 수 있습니다.
다음은 Scatter의 색상을 바꾼 예시입니다.
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink') # 색상 변경 : HTML Color Names
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999') # 색상 변경 : 16 진수 색상 값
plt.show()
10-4. 각 점에 색상 지정
각 점에 색상을 지정할 때는 color 인수를 사용할 수 없습니다.
c 인수 만 사용할 수 있습니다.
다음은 각 점에 색상을 따로 지정하는 예시입니다.
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array(["red","green","blue","yellow","pink","black","orange","purple","beige","brown","gray","cyan","magenta"])
plt.scatter(x, y, c=colors) # 색상 지정
plt.show()
10-5. ColorMap
Matplotlib 모듈에는 여러 가지 사용 가능한 컬러 맵이 있습니다.
컬러 맵은 각 색상의 값이 0에서 100 사이 인 색상 목록과 같습니다.
컬러 맵 cmap 키워드 인수 로 컬러 맵을 지정할 수 있습니다.
'viridis'는 Matplotlib에서 사용할 수있는 내장 컬러 맵 중 하나입니다.
산점도의 각 점에 대해 하나의 값 (0에서 100까지)으로 배열을 만들어야합니다.
다음은 색상 배열을 생성하고 산점도에 컬러 맵을 지정한 예시입니다.
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.show()
plt.colorbar()명령문을 포함하여 도면에 컬러 맵을 포함 할 수 있습니다.
다음은 도면에 컬러맵을 표현한 예시입니다.
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.colorbar() # 도면에 컬러맵 표시
plt.show()
10-6. 사용 가능한 ColorMaps
내장 된 컬러 맵 중 하나를 선택할 수 있습니다.
Name
Name
Name
Accent
Spectral
jet
Blues
Wistia
magma
BrBG
YlGn
nipy_spectral
BuGn
YlGnBu
ocean
BuPu
YlOrBr
pink
CMRmap
YlOrRd
plasma
Dark2
afmhot
prism
GnBu
autumn
rainbow
Greens
binary
seismic
Greys
bone
spring
OrRd
brg
summer
Oranges
bwr
tab10
PRGn
cividis
tab20
Paired
cool
tab20b
Pastel1
coolwarm
tab20c
Pastel2
copper
terrain
PiYG
cubehelix
twilight
PuBu
flag
twilight_shifted
PuBuGn
gist_earth
viridis
PuOr
gist_gray
winter
PuRd
gist_heat
Set1
Purples
gist_ncar
Set2
RdBu
gist_rainbow
Set3
RdGy
gist_stern
gray
RdPu
gist_yarg
hot
RdYlBu
gnuplot
hsv
RdYlGn
gnuplot2
inferno
- Reverse를 사용하고 싶을 때는 끝에 _r을 붙여주면 됩니다.
ex) copper_r
10-7. 크기
s인수 를 사용하여 점의 크기를 변경할 수 있습니다 .
색상과 마찬가지로 크기 배열의 길이가 x축 및 y축 배열과 동일한 지 확인합니다.
다음은 s를 이용하여 점의 크기를 변경하는 예시입니다.
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])
plt.scatter(x, y, s=sizes) # 점의 크기를 변경합니다.
plt.show()
10-7. 투명도 (알파)
alpha인수를 사용하여 점의 투명도를 조정할 수 있습니다.
색상과 마찬가지로 크기 배열의 길이가 x축 및 y축 배열과 동일한 지 확인합니다.
다음은 alpha를 이용해서 scatter에 투명도를 변경한 예시입니다.
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])
plt.scatter(x, y, s=sizes, alpha=0.5) # 투명도를 0.5로 설정
plt.show()
10-8. 색상 크기와 알파 결합
각 scatter에 색상, 크기, 투명도를 변경할 수도 있습니다.
다음은 x- 포인트, y- 포인트, 색상 및 크기에 대해 100 개의 값이있는 임의 배열로 나타낸 예시입니다.
x = np.random.randint(100, size=(100))
y = np.random.randint(100, size=(100))
colors = np.random.randint(100, size=(100)) # 임의의 컬러 100개
sizes = 10 * np.random.randint(100, size=(100)) # 임의의 사이즈 100개
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral')
plt.colorbar()
plt.show()
11. Matplotlib Bars
11-1. 바 만들기
Pyplot을 사용하면 bar()함수를 사용하여 막대 그래프를 그릴 수 있습니다.
다음은 4개의 막대를 그린 예시입니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.array(["A", "B", "C", "D"]) # x축
y = np.array([3, 8, 1, 10]) # y축
plt.bar(x,y) # 바 생성
plt.show()
11-2. 수평 막대
막대를 세로 대신 가로로 표시하려면 barh()함수를 사용하면 됩니다.
다음은 barh()를 사용하여 가로 막대 4개를 만드는 예시입니다.
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.barh(x, y) # 가로 막대로 생성
plt.show()
11-3. 막대 색상
bar()및 barh()에 키워드 인수 color를 사용하여 색상을 설정합니다.
color는 3가지 방식으로 설정할 수 있습니다.
일반 색상 참조
ex) 'r'
16 진수 색상 값
ex) '#DAA520'
HTML Color Names
ex) 'BlueViolet'
다음은 4개의 바에 color로 "BlueViolet"를 준 예시입니다.
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.bar(x, y, color = "BlueViolet") # 바의 색상을 BlueViolet로 설정합니다.
plt.show()
11-4. 막대 폭 설정
bar()에 키워드 인수를 취하는 width를 사용하여 폭을 설정합니다.
기본 너비 값은 0.8입니다.
다음은 바에 width를 0.1로 주어 얇은 바를 4개를 만든 예시입니다.
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.bar(x, y, width = 0.1) # 막대의 폭을 변경합니다.
plt.show()
11-5. 가로 막대의 폭 설정
barh()에 키워드 인수를 취하는 height를 사용하여 높이를 설정합니다.
기본 값은 0.8입니다.
다음은 바에 height를 0.1로 주어 얇은 바를 4개를 만든 예시입니다.
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.barh(x, y, height = 0.1) # 가로 막대의 폭을 변경합니다.
plt.show()
12. Matplotlib Histograms
히스토그램은 빈도 분포를 보여주는 그래프입니다.
주어진 간격 내 관찰 수를 보여주는 그래프입니다.
12-1. 히스토그램 생성
Matplotlib에서는 hist()함수를 사용하여 히스토그램을 만듭니다.
다음은 NumPy를 사용하여 250개의 값이있는 배열을 무작위로 생성합니다. 여기서 값은 170에 집중되고 표준 편차는 10입니다.
이를 이용해서 히스토그램을 만들어본 예시입니다.
import matplotlib.pyplot as plt
import numpy as np
x = np.random.normal(170, 10, 250) # 무작위 값 생성, 기준은 170, 표준 편차 10에 250개의 무작위 값을 생성합니다.
plt.hist(x) # 히스토그램을 생성합니다.
plt.show()
13. Matplotlib Pie Charts
13-1. 파이 차트 생성
Pyplot을 사용하면 pie()함수를 사용하여 원형 차트를 그릴 수 있습니다.
참고 : 각 쐐기의 크기는 다음 공식을 사용하여 값을 다른 모든 값과 비교하여 결정됩니다.
모든 값의 합계로 나눈 값 : x/sum(x)
다음은 원형 차트는 배열의 각 값에 대해 하나의 조각 (웨지라고 함)을 그립니다 (이 경우 [35, 25, 25, 15]).
기본적으로 첫 번째 쐐기의 플로팅은 x축에서 시작하여 시계 반대 방향으로 이동합니다.
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y)
plt.show()
13-2. 라벨
label 매개 변수를 사용하여 원형 차트에 레이블을 추가하십시오.
다음은 파이 차트에 레이블을 추가한 예시입니다.
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"] # 레이블 이름 생성
plt.pie(y, labels = mylabels) # 레이블 추가
plt.show()
13-3. 시작 각도
언급했듯이 기본 시작 각도는 x축에 있지만 startangle 매개변수를 지정하여 시작 각도를 변경할 수 있습니다.
startangle : 매개 변수 각도로 정의
기본 각도 : 0
다음은 startangle을 이용하여 시작 각도를 90도로 변경한 예시입니다.
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]plt.pie(y, labels = mylabels, startangle = 90) # 시작 각도를 90도로 변경
plt.show()
댓글