본문 바로가기
Projects

[매출 관리 프로그램 제작] - 기능구현(3),시각화기능 추가

by Runningturtle 2024. 8. 22.

지난 포스팅에서 기능2를 구현하였다.

 

이어서 기능3을 구현하겠다. 

 

 

기능4번

 

곰곰이 생각해 봤는데 DB의 데이터를 수정하는 기능4번은 사용자에게 너무 큰 권한을 주는것 같다는 생각을 하였다. 데이터 무결성도 쉽게 깨질수 있어 데이터 수정기능인 4번은 구현하지 않기로 결정.

 

 기능4번 대신에 새롭게 추가할 다음과같은 유용한 기능을 생각해보았다.

- 데이터 시각화 기능

- 조회 데이터 Export기능

- 매출예측 Ai 기능

을 추가하기로 하였다.

 

이번포스팅에서는 기능3번과 데이터 시각화 기능을 구현하였다.

 

 

pandas , matplotlib

시각화를 위해 pandas와 matplotlib 를 임포트한다.

 

 

데이터를 시각화 하려면 DataFrame 형태로 바꿔야한다. 그리고 DataFrame 컬럼명을 지정해 줘야하는데

하나의 버튼으로 컬럼명에따라 모든 쿼리의 시각화 기능을 수행할 수 있도록 Cursor 객체의 컬럼명을 알아야한다.

아래와 같은 방법으로 컬럼명을 얻을수있다.

 

컬럼명

 

실행 결과

 

 

 

self

데이터베이스 결과를 li변수로 컬럼명을 colnames변수로 선언한다.

클래스 내에서 변수를 참조한다면 self 유의해야한다.

 

 

 

실행 무반응

시각화 기능을 간단히 테스트해보는 코드이다. 

실행결과는 무반응.

어디서 오류인지 알아내기위해 print출력문을 코드 사이사이에 배치

 

 

 

 


컬럼명 일치여부를 확인하는 if문에서 오류가 발생함을 확인

 

 

 

 

컬럼명 조회

 

[ ]

컬럼명이 담겨있어야 되는 colnames가 비어있다.

 

 

아래코드에서 위로변경

self를 뺴먹어서 참조에 실패했던 것이다.

 

수정후 실행 결과

 

 

소문자를 대문자로 수정

 

colnames의 컬럼명과 대소문자를 구분하여 정확히 일치하도록 수정한다

 

그리고 테스트실행

 

 

 

 

에러

부적절한 Data value라는 내용이다.

 

 

DataFrame의 Data변수를 조회

이상이 없음을 확인

 

 

 

오류가 발생한 부분을 찾기위해 Print문을 사이사이 배치

 

 

 

???

10번까지 모두 정상출력

 

이후 자세히 확인해보니

 

 

 

df_pivot.plot(kind='line')

 

단순 오타가 원인이었다.

 

그리고 

 

 

각 지점별 메뉴 판매 집계

 

시각화에는 성공하였으나 표기된 그래프가 잘못되었다.

파란색 0번 카테고리가 가장 많은것은 

부분 집계를 쿼리에 따로 포함시켜 이를 하나의 카테고리로 분류해 잘못된 표기가 발생

 

 

 

시각화용 쿼리

기능2번 쿼리를 시각화용에 맞게 수정하였다.

 

쿼리 수정 후(지점별 메뉴 판매 집계)

시각화가 올바르게 되었다.

 

 

 

색상 변경(지점별 메뉴 판매 집계)

 

 

 

 

기능3번은 따로 구현 과정을 담지못했지만 기능3번도 구현 완료하였다.

 

아래는 기능3번과 시각화기능 실행 영상이다

 

 

 

 

 

 

 

이로서 기능3번,시각화 기능 구현을 마친다.