목차
파이썬으로 그래프를 그릴 때 기본적으로 사용하는 라이브러리로 matplotlib일 일반적입니다. plt.plot()이나, plot.scatter()와 같은 함수를 이용하여 그래프를 가시화하는데, 그전에 plt.figure()를 사용하는 경우가 있습니다. figure()의 정확한 사용에 대해 정리해 보도록 하겠습니다.
1. plt.figure()는 꼭 사용해야 하나?
plt.figure() 함수는 Matplotlib에서 그림(figure) 객체를 생성하기 위해 사용됩니다. 그러나 모든 그래프를 그릴 때마다 plt.figure() 함수를 명시적으로 호출할 필요는 없습니다. Matplotlib은 기본적으로 plt.figure() 함수를 자동으로 호출하여 기본 그림(figure) 객체를 생성하기 때문입니다. 하지만 아래와 같은 경우에는 반드시 figure()를 사용해 주어야 합니다.
1. 복수 개의 그림을 동시에 그리고 싶을 때
plt.figure() 함수를 호출하여 새로운 그림 객체를 생성하고, 이를 통해 서로 다른 그림을 그릴 수 있습니다.
2. 그림의 크기, 해상도, 배경색 등의 속성을 직접 지정하고 싶을 때
plt.figure() 함수의 매개변수를 사용하여 그림의 속성을 조정할 수 있습니다. 이를 통해 원하는 그림의 크기, 해상도, 배경색 등을 설정할 수 있습니다.
단일 그림을 그릴 때는 plt.figure() 함수를 명시적으로 호출하지 않아도 됩니다. Matplotlib은 그림 객체를 자동으로 생성하고 사용합니다. 그러나 여러 개의 그림을 동시에 그리거나 그림의 속성을 직접 조정하고 싶은 경우에는 plt.figure() 함수를 사용하여 그림 객체를 생성할 수 있습니다.
2. figure() 함수의 인자들
plt.figure() 함수는 Matplotlib 라이브러리에서 그림(figure)을 생성하는 역할을 합니다. 그림(figure)은 Matplotlib에서 그림을 그리는 영역을 말하며, 그림 내에 하나 이상의 서브플롯(subplot)을 포함할 수 있습니다. plt.figure() 함수를 호출하면 새로운 그림(figure) 객체가 생성되고, 이 객체를 통해 그림의 여러 속성과 서브플롯을 조작할 수 있습니다.
import matplotlib.pyplot as plt
plt.figure(num, figsize, dpi, facecolor, edgecolor, frameon)
plt.figure() 함수는 여러 매개변수를 통해 그림의 속성을 지정할 수 있습니다. 몇 가지 주요 매개변수는 다음과 같습니다:
num: 그림(figure)의 번호를 지정합니다. 이 매개변수를 사용하여 이미 생성된 그림의 번호를 지정하거나, 번호를 지정하지 않으면 자동으로 그림 번호가 부여됩니다.
figsize: 그림의 크기를 지정합니다. (가로 크기, 세로 크기) 형태의 튜플로 값을 지정하며, 단위는 인치입니다. 예를 들어, figsize=(8, 6)은 가로 8인치, 세로 6인치 크기의 그림을 생성합니다.
dpi: 그림의 해상도를 지정합니다. 인치당 도트 수로 해상도를 설정하며, 기본값은 100입니다.
facecolor: 그림의 배경색을 지정합니다. 색상을 지정하는 문자열이나 RGB 튜플을 사용할 수 있습니다.
edgecolor: 그림의 테두리 색을 지정합니다. 색상을 지정하는 문자열이나 RGB 튜플을 사용할 수 있습니다.
frameon: 그림의 테두리를 그릴지 여부를 결정합니다. 기본값은 True로 테두리를 그리며, False로 설정하면 테두리를 그리지 않습니다.
plt.figure() 함수를 호출한 후에는 그림 객체를 변수에 할당하여 참조할 수 있습니다. 이렇게 생성된 그림 객체를 사용하여 그림에 서브플롯을 추가하거나, 그림의 속성을 변경할 수 있습니다. 예를 들어, fig 변수에 그림 객체를 할당한 후에 fig.add_subplot() 함수를 사용하여 서브플롯을 추가할 수 있습니다.
3. plt.figure() 인자를 사용한 예제 코드
[객체 선언 방식의 figure() 사용]
아래 코드는 객체선언 방식의 figure() 사용방식입니다. plt.figure() 객체를 fig 변수에 할당 후 add_subplot()을 사용하여 내부 그래프를 추가 및 설정하는 방식입니다. 일반 함수 사용법보다는 조금 번거롭지만 for문을 활용할 경우에는 유용할게 사용할 수 있습니다.
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 6), dpi=100, facecolor='white',
edgecolor='black', frameon=True)
ax = fig.add_subplot(1, 1, 1)
ax.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro-')
ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_title('Example Plot')
plt.show()
[함수 방식의 figure() 사용]
figure() 함수를 객체 선언하지 않고 바로 사용할 수 있는 방법을 함수 사용이라고 합니다. 위의 코드에서는 fig, ax 변수를 설정하고 그래프의 세팅에서도 ax객체에 set_xlabel과 같은 메서드를 사용하였지만, 함수 사용방식에서는 plt의 함수를 사용하는 것으로 쉽게 설정이 가능합니다.
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 6), dpi=100, facecolor='white',
edgecolor='black', frameon=True)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro-')
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.title('Example Plot')
plt.show()
주의해야 하는 사항으로는 축 이름이나 그래프 제목을 설정하는 메서드나 함수가 figure() 사용법에 따라 달라지게 됩니다. 아래 비교표를 보면 객체 사용방법이 좀 더 복잡함을 알 수 있습니다. 저의 경우 상황에 맞게 두 가지 방식을 병행하며 사용하고 있습니다.
4. 마치며
그래프를 한 개만 그릴 경우에는 잘 사용하지 않지만 여러 개의 그래프를 생성할 때는 plt.figure()를 사용해야 합니다. 화면상에 새 창으로 그래프가 생성이 되는데 이때 특정 사이즈로 보고 싶을 경우에는 figsize를 지정하면 됩니다. figure()는 함수 사용법과 객체 사용법으로 나눌 수 있습니다. 일반적으로 함수사용법이 간단하여 대부분 처음에는 함수사용법으로 코딩을 합니다. 좀 더 고급 코딩을 위해서는 객체사용법도 알아두면 도움이 됩니다.
댓글