Akashic Records

[추가자료] 9.3 데이터 시각화 Matplotlib - 직선, 점 그래프 본문

Python for Beginners

[추가자료] 9.3 데이터 시각화 Matplotlib - 직선, 점 그래프

Andrew's Akashic Records 2024. 6. 11. 17:19
728x90

직선 그래프 예제

import matplotlib.pyplot as plt

def draw_chart() :
    """직선 그래프 그려보기"""
    input_values = [1,2,3,4,5]
    squares = [1,4,9,16,25]

    # 내장 스타일 지정
    plt.style.use('seaborn-v0_8')
    fig, ax = plt.subplots()
    ax.plot(input_values, squares, linewidth=3)

    # 그래프 타이틀을 지정하고 축에 이름표를 붙인다.
    ax.set_title("Square Numbers", fontsize=24)
    ax.set_xlabel("Value", fontsize=14)
    ax.set_ylabel("Square of Value", fontsize=14)

    # 틱 이름표 크기를 지정합니다.
    ax.tick_params(labelsize=10)

    plt.show()

if __name__ == '__main__':
    draw_chart()

 

파이썬 코드는 matplotlib 라이브러리를 이용해 간단한 직선 그래프를 그리는 예제입니다. 코드의 핵심 부분과 기능을 상세하게 설명하겠습니다:

 

모듈 임포트:

import matplotlib.pyplot as plt

matplotlib.pyplot은 데이터를 차트나 플롯으로 시각화하기 위한 주요 모듈입니다. 여기서 plt라는 별칭으로 임포트해서 사용합니다.

 

데이터 설정:

input_values = [1,2,3,4,5]
squares = [1,4,9,16,25]

input_values는 X 축의 값을 나타내고, squares는 해당 X 값의 제곱 값을 Y 축에 나타냅니다.

 

스타일 설정:

plt.style.use('seaborn-v0_8')

matplotlibseaborn-v0_8 스타일을 사용하여 그래프의 시각적 스타일을 설정합니다. seaborn 스타일은 깔끔하고 현대적인 디자인을 제공합니다.

 

그래프 초기화 및 데이터 플로팅:

fig, ax = plt.subplots()
ax.plot(input_values, squares, linewidth=3)

plt.subplots()를 사용하여 그래프의 기본 틀(fig)과 하위 플롯(ax)을 생성합니다. ax.plot() 메서드를 이용해 input_valuessquares 데이터를 그래프에 플로팅하며, linewidth=3 옵션은 선의 두께를 지정합니다.

 

타이틀 및 라벨 설정:

ax.set_title("Square Numbers", fontsize=24)
ax.set_xlabel("Value", fontsize=14)
ax.set_ylabel("Square of Value", fontsize=14)

ax.set_title()는 그래프의 제목을 설정하며, fontsize=24는 제목의 글자 크기를 지정합니다. ax.set_xlabel()ax.set_ylabel()은 각각 X 축과 Y 축의 라벨을 설정합니다.

 

눈금 설정:

ax.tick_params(labelsize=10)

ax.tick_params() 메서드는 축의 눈금 관련 설정을 할 수 있습니다. 여기서는 눈금의 라벨 크기를 10으로 설정합니다.

 

그래프 표시:

plt.show()

모든 설정 후 plt.show()를 호출하여 최종적으로 그래프를 화면에 출력합니다.

 

 

선점 그래프 예시

import matplotlib.pyplot as plt

def draw_chart():
    plt.style.use('seaborn-v0_8-dark')
    fig, ax = plt.subplots()

    # x_values = [1,2,3,4,5]
    # y_values = [1,4,9,16,25]

    x_values = range(1,1001)
    y_values = [x**2 for x in x_values]

    # s 인수는 그래프에 사용할 점의 크기
    #ax.scatter(x_values, y_values, color='red', s=10)

    #  컬러맵 설정
    ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

    # 그래프 타이틀을 지정하고 축에 이름푤르 붙인다.
    ax.set_title("Square Numbers", fontsize=24)
    ax.set_xlabel("Value", fontsize=14)
    ax.set_ylabel("Square of Value", fontsize=14)

    # 틱 이름표 크기를 지정합니다.
    ax.tick_params(labelsize=14)

    # 각 축의 범위를 지정합니다.
    ax.axis([0, 1100, 0, 1_100_000])
    ax.ticklabel_format(style='plain')
    # 이미지로 저장, 두번째 인수는 그래프에서 여분의 공백을 제거합니다.
    #plt.savefig('squares_plot.png', bbox_inches='tight')
    plt.show()

if __name__ == '__main__':
    draw_chart()

 

이 코드는 matplotlib 라이브러리를 사용하여 점으로 표현된 그래프를 그리는 함수 draw_chart를 정의하고 있습니다. 자세히 살펴보겠습니다:

 

모듈 임포트:

import matplotlib.pyplot as plt

matplotlib.pyplot은 데이터 시각화를 위한 주요 도구로, 이 경우 plt 별칭을 사용하여 호출합니다.

 

스타일 설정:

plt.style.use('seaborn-v0_8-dark')

seaborn-v0_8-dark 스타일은 그래프에 어두운 테마를 적용합니다. 이 스타일은 선명한 대비를 제공하여 시각적으로 눈에 띄는 그래프를 만듭니다.

 

그래프 기본 설정:

fig, ax = plt.subplots()

plt.subplots()를 사용하여 그래프의 틀(fig)과 서브플롯(ax)를 생성합니다.

 

데이터 생성:

x_values = range(1,1001)
y_values = [x**2 for x in x_values]

x_values는 1부터 1000까지의 값들을 포함하며, y_valuesx_values의 각 값에 대해 제곱 값을 계산합니다. 이 데이터는 그래프에서 x와 y축의 값으로 사용됩니다.

 

점 그래프 설정:

ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

ax.scatter() 메서드는 x와 y 값에 따라 점 그래프를 그립니다. 여기서는 각 점의 색을 해당 y 값에 따라 색상 맵(plt.cm.Blues)으로 지정하고, 점의 크기는 10으로 설정합니다.

 

그래프 타이틀 및 축 라벨 설정:

ax.set_title("Square Numbers", fontsize=24)
ax.set_xlabel("Value", fontsize=14)
ax.set_ylabel("Square of Value", fontsize=14)

타이틀과 축 라벨을 설정하며, 폰트 크기를 조정하여 타이틀은 더 크게, 축 라벨은 적당히 크게 설정합니다.

 

눈금 설정:

ax.tick_params(labelsize=14)

축의 눈금 라벨 크기를 14로 설정합니다.

 

축 범위 설정:

ax.axis([0, 1100, 0, 1_100_000])
ax.ticklabel_format(style='plain')

축 범위를 명시적으로 설정하며, y축의 눈금 포맷을 'plain'으로 설정하여 큰 수를 간결하게 표현합니다.

 

그래프 출력 및 저장 (선택적):

plt.show()
# plt.savefig('squares_plot.png', bbox_inches='tight')

plt.show()를 사용해 그래프를 화면에 표시합니다. 주석 처리된 plt.savefig() 메서드는 그래프를 이미지 파일로 저장할 수 있으며, bbox_inches='tight'는 그래프 주변의 불필요한 여백을 제거합니다.

 

728x90
Comments