img img img
image
회원가입시 광고가 제거됩니다

파이썬 코드 실행 안녕하세요. 해당 코드를 실행시켜 주실 수 있으실까요? 자꾸 오류가 발생하네요

안녕하세요. 해당 코드를 실행시켜 주실 수 있으실까요? 자꾸 오류가 발생하네요 ㅠㅡㅠimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmimport pandas as pd# 한글 및 이모지를 포함한 텍스트 시각화를 위해 가능한 폰트 자동 선택available_fonts = fm.findSystemFonts()preferred_fonts = ["AppleGothic", "Malgun Gothic", "NanumGothic", "DejaVu Sans"]font_found = Falsefor font in preferred_fonts:    if any(font in f for f in available_fonts):        plt.rcParams['font.family'] = font        font_found = True        breakif not font_found:    # fallback 폰트를 리스트 형식으로 지정    plt.rcParams['font.family'] = ['DejaVu Sans']    plt.rcParams['axes.unicode_minus'] = False# 데이터 정의labels = ['응답 속도', '스텔스 성능', '설계 자유도', '정비 간소화', '구현 난이도']traditional = [3, 1, 2, 1, 3]afc = [5, 5, 5, 4, 4]x = range(len(labels))bar_width = 0.35# 표 데이터table_dict = {    "구분": [" 기술 개요", " 기존 방식과 차이", "✈️ AFC 방식 원리", "⚙️ 관련 기술", "⚖️ AFC 장점", " 실험 내용", " 실험 결과"],    "내용 요약": [        "X-65는 조종면 없이 압축 공기 분사(AFC)로 비행 자세를 제어하는 실험기임",        "기존 항공기는 플랩·러더 등 조종면을 기계적으로 움직여 자세를 제어함",        "기체 표면의 노즐에서 압축 공기 분사 → 공기 흐름 변화 → 자세 제어",        "추력 벡터링과 유사하지만, 기체 외형을 변화시키지 않고 제어 가능",        "빠른 응답성, 설계 자유도 향상, 스텔스 성능 증가, 정비 간소화",        "모형 비행기에서 조종면(방향타, 엘리베이터 등)을 조작하며 자세 변화를 직접 관찰함",        "조종면 변화가 기체 자세에 영향을 미친다는 기본 원리 확인 → AFC도 같은 원리 응용"    ]}df_table = pd.DataFrame(table_dict)# 시각화 생성fig = plt.figure(figsize=(15, 10))fig.suptitle("전통적 조종면 제어 vs AFC 제어 비교 및 핵심 요약", fontsize=16)# 막대 그래프ax1 = fig.add_subplot(2, 1, 1)ax1.bar([i - bar_width/2 for i in x], traditional, width=bar_width, label='전통적 조종면 제어', color='gray')ax1.bar([i + bar_width/2 for i in x], afc, width=bar_width, label='AFC 제어', color='skyblue')ax1.set_xticks(x)ax1.set_xticklabels(labels)ax1.set_ylabel('상대적 점수 (1~5)')ax1.set_title('비행 제어 방식 비교 그래프')ax1.legend()ax1.grid(axis='y', linestyle='--', alpha=0.6)# 표 추가ax2 = fig.add_subplot(2, 1, 2)ax2.axis('off')table = ax2.table(cellText=df_table.values, colLabels=df_table.columns, cellLoc='left', loc='center')table.auto_set_font_size(False)table.set_fontsize(10)table.scale(1.2, 1.5)# tight_layout 대신 subplots_adjust 사용plt.subplots_adjust(top=0.9)# 파일 저장 (경로를 현재 작업 디렉토리로 변경)output_path = "전통_vs_AFC_그래프_표_통합.png"plt.savefig(output_path, dpi=300)print("저장 완료:", output_path)

오류메세지를 같이 올려주시면 더 정확하게 알려드릴 수 있을거 같은데

우선 체크사항은 총 4가지입니다.

1.폰트 설정 관련 오류

if any(font in f for f in available_fonts):

이 부분에서 "AppleGothic" in '/usr/share/fonts/AppleGothic.ttf' 같은 체크가 제대로 안 될 수 있습니다. 아래처럼 os.path.basename()을 써서 파일명만 비교하는 방식이 더 안전합니다:

import os

for font in preferred_fonts:

if any(font in os.path.basename(f) for f in available_fonts):

plt.rcParams['font.family'] = font

font_found = True

break

2.표에 한글이 깨지는 문제

테이블에 한글이 포함될 때 폰트 설정이 제대로 안되면 한글이 깨지거나 표시되지 않을 수 있습니다.

추가적으로 테이블에 한글 폰트 지정이 필요한 경우 아래처럼 처리할수 있습니다.

for key, cell in table.get_celld().items():

cell.set_fontproperties(fm.FontProperties(fname=fm.findfont(plt.rcParams['font.family'][0])))

3.table.scale과 tight_layout 충돌

너무 꽉차게 만들면 표가 잘리기도 합니다.

아래처럼 여백을 넉넉히 줄 수 있습니다.

plt.subplots_adjust(top=0.92, bottom=0.1)

4.파일 저장경로 문제

저장경로에 한글이 들어가 있으면 OS에 따라 오류가 나기도 합니다.

영어로 테스트 해보거나 경로를 절대경로로 지정해보세요

이상입니다!