TIE - 'AxesSubplot' object has no attribute 'plt'

kyoungyeon·2022년 11월 19일
0

TIE

목록 보기
22/48

status:
plt 을 이용, 1행 2열에 두가지 종류의 plot을 만드려고 함
ax 가 matplot 의 plt를 못받아옴.
왜 안되는 것인지 모르겠다.

try1 : syntax error

 fx, axes = plt.subplots (1,2)  
 ...
 ax[0].xlabel('연도')
  • subplot-> subplots 빠졌나요? (오류날 수도 있음, 주의)
  • lable -> label 등 syntax 오류
  • 실패 : 나의 경우 2시간 내내 아주 코드를 일일이 다 검수... 해서 전혀 해당사항 없음
    refer

try 2 : add_supblot 붙여보기

 fx, axes = plt.subplots (1,2) 
 axes.add_subplot()
 
  • 실패 : 새로운 에러 발생!
Matplotlib: TypeError: 'AxesSubplot' object is not subscriptable

refer

refer2

try 3 : dimension 에 따른 참고 error

  • 위 레퍼를 보면서 하나씩 다 시도해보자..😨
  • array > 1차원으로도 바꾸어봄
fx, axes = plt.subplots (1,2) 
ax[1][2].set_xticks([]) // 1 ! error
ax[1,2].set_xticks([]) // 2  ! error
ax[0].set_xticks([]) //3 
  • 실패 : 일단 참고 dataframe이 2차원 배열이 아님. 1차원 dataframe을 이용해야해서
    • 마지막 3번째 사항만 기존 error만 도출함 (기존 강사님 코드도 그러함).
    • 문제는 기존 err 그대로 .

refer1

try4 : version 문제 , libaray 문제

  • 실패 : 버전은 업데이트가 됬고 재설치도 했으나 전혀 에러와 관련 없음

  • 1 numpy, pandas 패키지는 버전 문제가 있을 수 있다 라고 글을 참조함

    • anacornda 프롬프트로 업데이트 하는 법만 사용
      conda upgrade pandas --y
      conda upgrade numpy --y
    • 참고로 로컬에 pip 안깔려 있으면 pip 아무리 해도 안되니 conda 이용할것.
    • jupyter notebook 셸에서도 사용할수있다고 함 프롬프트 번거로우니..알아놓자
      !pip 명령어 패키지명 --upgrade
  • 2 전혀 해결되지 않아 matplotlib 삭제하기로 함

    • matplotlib이 2개 깔리면 충돌나는거라 그럴수도 있다고 글을 읽음 🤯
    • 근데 아무리봐도 두개는 다른 것 같은데..? 일단 삭제후 재설치 함.
    matplotlib                    3.5.3
    matplotlib-inline             0.1.6
    • 재 설치 후에도 똑같이 설치됨. 상관 없는 듯
      refer

try5 : 하위 패키지 import

  • 닥치는대로 import 해보자 코드 자체는 큰 문제 없다고 판단된다
import matplotlib as mpl
import matplotlib.pyplot as plt

실패 : 관련없음

try 6: 코드수정

# 서브플롯 만들기

fig ,ax  = plt.subplots(1,2,sharex=True,sharey=True)   
#ax.set()
ax =fig.gca()
#fig = plt.figure()
#ax =plt.add_suplot(121)
#axes = fig.add_subplot(1,2)
 
# 1행 2열 

# 연도별 폭염일, 열대야 일수 시각화
# plt.subplot(1, 2,1)
# plt.plot(df_seoul_hot_day_count.index,df_seoul_hot_day_count['폭염일수'])

#ax[0].plt(df_seoul_hot_day_count.index,df_seoul_hot_day_count['폭염일수'], 'r.-')
ax[1].plt(df_seoul_hot_night_cnt.index,df_seoul_hot_night_cnt['열대야일수'], 'b.-')
ax.plt(df_seoul_hot_day_count.index,df_seoul_hot_day_count['폭염일수'], 'r.-')
... 

fig.tight_layout()
plt.show()
  • 해결 코드를 보니 현재 내 코드와 좀 다른 결과물이 보여서 나름 subplot? 을 붙여보려고 노력함...

    • 코드 수정 전

    • 코드 수정 후

    • 결과 : 실패!

      🤬😈👿👹👺👹👹👿😈😈

  • 원인 : 도대체가 왜 attribute Error 가 나는지 원인 분석부터 실패하니..다 실패한다.. 근데 모르는 걸!

profile
🏠TECH & GOSSIP

0개의 댓글