일별차트

마지막 업데이트: 2022년 5월 4일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
매출량 Column Chart

MY FRIEND HYOSUNG

올 해 초, 새해를 맞아 재테크를 다짐하신 분들 많을 것 같습니다. 일년의 4분의 1이 지난 지금 그 목표는 잘 이뤄지고 있나요? 처음 목표와는 달리 조금은 지지부진을 면하지 못하고 있는 것은 아닌지 모르겠어요. 그럴 땐 거창한 목표를 세우기 보다는 하루하루의 수입과 지출을 꼼꼼하게 관리해주는 것이 더 좋겠죠? 지난 번에는 데이터 유효성 검사 및 SUMIF 함수를 통해 가계부의 항목을 정하고 항목별 합계를 구하는 방법을 소개해드렸는데요, 오늘은 이중 그래프 를 통해 일별 수입 및 지출 추이를 살피는 법을 소개해드릴게요.

* 본문의 모든 이미지는 클릭하면 크게 보실 수 있습니다.

* 오피스 2010 버전을 기준으로 작성되었습니다.

SUMIF 함수 일별차트 복습, 일별 사용 합계 구하기

지난 번에 SUMIF 함수를 사용하여 항목별 지출/수입 금액의 합을 구하는 법을 알려드렸었는데요, 이번에는 SUMIF 함수로 일별 사용 합계를 구한 뒤, 그래프로 일별 수입/지출 추이를 살펴보고자 해요. 복습하는 의미로 한 번 더 소개해드릴게요.

먼저, ‘일별 내역’이라는 새로운 탭을 만들어 날짜 별로 지출과 수입을 기록할 수 있는 표를 만들었어요.

그 다음 SUMIF 함수를 사용해 일별 합계를 구해주려고 합니다. SUMIF 함수는 특정 범위에서 조건에 맞는 셀의 합계를 구하는 것으로 ‘=SUMIF(range, criteria, [sum_range])’ 순으로 나타내는데요, 다시 말해 ‘=SUMIF(항목 범위, 조건, 합계를 구할 금액 범위)’라고 할 수 있습니다.

여기서는 일자별 지출의 합을 구할 것이므로 ‘range’, 즉 항목의 범위가 되는 부분은 ‘가계부’ 탭의 ‘날짜’ 부분이 되며, criteria는 ‘일별 내역’ 탭의 날짜, [sum_range]는 ‘가계부’ 탭의 금액 부분이 됩니다.

그럼 다시 ‘일별 일별차트 내역’ 탭으로 돌아와, 2월 1일의 지출의 합을 구해볼까요? range는 ‘가계부’ 탭의 ‘B4~B22’로, criteria는 ‘일별 내역’ 탭의 ‘2월 1일’이 있는 ‘B3’으로, [sum_range]는 ‘가계부’ 탭의 ‘G4~G22’로 설정하여 SUMIF 함수를 적용해주었습니다. 아래와 같이 말이에요.

=SUMIF(가계부!$B$4:$B$22,'일별 내역'!B3,가계부!$G$4:$G$22)

위와 같이 함수를 적용하였다면, 수식을 복사하여 ‘지출’의 나머지 칸들도 채워주세요. 채우기를 하면 복사한 셀들의 범위가 바뀔 수 있는데요, 이 때 셀 주소에 ‘$’를 붙여주면 범위를 고정시킬 수 있습니다.

셀 범위를 고정시키는 절대참조값 ‘$’

엑셀 함수에서 ‘$’는 셀 범위를 고정시킬 경우에 사용되는데요, 수식을 복사하더라도 셀의 범위는 그대로 유지하고자 할 경우, ‘$A$1’과 같이 표시할 수 있습니다. 이를 절대참조라고 합니다.

열을 고정시키면서 행을 고정시키거나, 행을 고정시키면서 열을 고정할 때에는 혼합참조를 써서 ‘$A1’ 혹은 ‘A$1’과 같이 나타낼 수도 있습니다.

수입 역시 마찬가지로 채우되, [sum_range] 부분을 수입 금액이 있는 ‘I4~I22’로 바꿔주면 되겠죠?

수식을 복사한 후, 나머지 칸들도 채워주세요.

일별 지출/수입 합계를 구했다면, 이번에는 그래프를 만들어볼게요. 앞서 만든 표를 블록설정한 후, ‘삽입>세로막대형>2차원 세로 막대형’ 그래프를 선택하여 기본 그래프를 만들어줍니다.

이 중 지출은 하루하루의 금액을 비교하기 쉽게 막대그래프를 사용하고, 수입은 그날의 변화를 보기 쉽도록 꺾은선그래프로 표시하려 합니다. 이럴 때 이중 그래프를 사용하면 한 눈에 보기 편해요. 이중 그래프를 만들 때에는 하나는 주축으로, 하나는 보조축으로 설정 하는데, 여기서는 지출을 주축으로, 수입을 보조축으로 정해봅니다.

보조축이 될 ‘수입’이 있는 막대에 마우스 우클릭 후, ‘데이터 계열 서식’을 클릭해주세요.

계열 옵션의 ‘데이터 계열 지정’에서 ‘보조 축’ 을 선택해주세요.

보조축을 설정하고 나니, 지출과 수입이 막대그래프 하나로 합쳐졌네요. 수입 부분을 꺾은선그래프로 나타내기 위해 수입 부분이 있는 빨간 그래프를 클릭해 '파일>차트 종류 변경' 을 클릭합니다.

‘꺾은선형’ 탭에서 변경할 그래프 모양을 선택한 후 확인.

위와 같이 수입 항목이 꺾은선형으로 변경된 것을 확인할 수 있습니다. 차트 제목을 입력하거나, 데이터 레이블을 추가하여 조금만 더 꾸며주면 더 보기 좋은 그래프가 완성되겠죠?

위와 같이 원그래프와 막대그래프를 결합할 수도 있습니다.

하지만 이중그래프의 경우, 결합할 수 있는 형태가 제한적이었습니다. 2차원과 3차원은 결합되지 않으며, 막대그래프와 꺾은선 그래프, 막대그래프와 원그래프, 혹은 분산형 그래프 정도만 표현할 수 있으니 참고해주세요. 하지만 더 방대한 자료의 경우 이중그래프로 표현하면 더욱 더 한 눈에 보기 쉽겠죠?

새해에는 재테크를 결심했지만 그 다짐이 흐지부지 되고 있다면, 지금부터라도 가계부를 꼬박꼬박 쓰는 습관을 들여보는 것은 어떨까요? 한 달간의 결과를 그래프로 정리해서 본다면, 조금 더 계획적인 경제 계획을 세울 수 있을 테니까요. ^^

Cardano 가격 분석: 강세 반등으로 ADA가 $0.6 이상으로 상승할 것입니다.

Cardano 가격 분석은 시장이 통합 상태에 있음을 보여줍니다. 그러나 상승세를 이어가지 못하고 가격이 하락하기 시작했다. 황소가 하락을 매수하고 가격을 더 높게 몰았기 때문에 하락은 짧았습니다. ADA/USD 쌍은 현재 $0.459에 거래되고 있으며 황소는 $0.600 이상을 목표로 합니다.

이 차트에서 중요한 강세 추세선이 형성되고 있습니다. $0.489 근처에서 지원하며, 이는 다음 날 중요한 역할을 할 것입니다. Cardano(ADA)의 가격이 이 추세선 아래로 떨어지면 단기적으로 $0.400까지 떨어질 수 있습니다. 황소가 통제를 유지하면 가격이 $0.700 이상으로 상승하고 다음 주에 $1.000 저항 영역을 테스트할 수 있습니다.

Cardano 1일 가격 분석: ADA /USD가 곧 최고가를 경신할 예정입니다.

일별 카르다노 가격 분석 차트에서 이 수준 주변에 많은 매도 압력이 있었고, 그 결과 ADA/USD 쌍. 황소는 쌍이 $0.600 장벽 아래로 떨어졌을 때 $0.549 근처에서 빠르게 나타났습니다.

가격은 이제 안정되고 있으며 다음 움직임은 $0.600 또는 가까운 장래에 $ 0.489 미만입니다. Cardano는 여전히 상승 궤도에 있으며 다음 세션에서 새로운 최고치를 달성할 수 있습니다.

볼린저 밴드가 분리되고 있기 때문에 암호화 쌍의 변동성은 매우 일별차트 높으며 지표의 상단 밴드는 저항이었지만 이미 돌파된 $0.513입니다. 하단 밴드는 0.410달러로 떨어졌으며 이는 ADA 가격 기능에 대한 지원을 나타냅니다. 볼린저 밴드 평균선은 이동 평균값인 $0.462보다 낮습니다.

가격 테스트를 거친 지지선은 $0.532 부근이며 현재 넓은 범위에서 안정화되고 있습니다. 중요한 지지 영역은 $0.489에 가깝고, 그 아래에서 휴식을 취하면 $0.400으로 이동할 가능성이 높아집니다. 가격이 오르기 시작하면 $0.600 근처에서 저항에 부딪힐 것이 가장 확실합니다. 이 저항 영역을 확실히 돌파하면 가까운 장래에 $0.700 수준을 향한 랠리를 알릴 수 있습니다.

이동 평균 크로스오버(MA) 전략 이동 평균( MA) 크로스오버 접근 방식은 비트코인 ​​시장에서 간단하면서도 효율적인 거래 방법입니다. 이 방법은 두 개의 이동 평균(단기 및 장기)이 서로 교차할 때 추세 변화를 나타냅니다.

5 MA 및 20 MA 교차 전략은 가장 일반적으로 사용되는 MA 교차 전략입니다. 5MA가 20MA를 넘으면 시장은 상승추세에 있고 구매자가 책임진다. 5 MA가 20 MA 아래로 떨어지면 시장이 하락세에 있고 판매자가 명령을 내릴 수 있다는 신호입니다.

Cardano 가격 분석의 결론

요약하자면, Cardano 가격 분석 ADA는 강세이지만 $0.600 근처에서 저항에 직면하고 있습니다. 단기적으로 $0.489 미만의 명백한 위반이 발생하면 ADA/USD 쌍이 $0.400 수준으로 크게 하락할 수 있습니다.

라인 차트는 기본적으로 컬럼 차트와 유사하고 만드는 방식도 거의 비슷하다. 그러나 컬럼 차트의 목적이 다른 항목들 간 값을 비교하는 것이라면 라인 차트는 하나의 항목에 대해 값의 변화량을 관찰하기 위해 주로 사용된다는 점에서 차이가 있다.

라인 차트는 시간 경과에 따라 데이터 흐름을 파악하는 데에 유용하다. 또한 여러 개의 라인을 통해 동등한 기준 내 다른 항목들 간 변화량의 차이를 비교할 수도 있다.

여기에서는 백신 접종자수 비율 상위 5개 국가의 백만명 당 월별 백신 접종 횟수 데이터를 사용하였다. 국가 수가 많다보니 차트 형태를 단순화하기 위해 컬럼 차트에서 사용한 기준으로 상위 5개국으로 대상을 제한하였으며, 일별 데이터를 사용할 경우 데이터가 지나치게 많아 차트가 복잡해지거나 보여줄 기간을 제한하게 되므로 월별 데이터로 집계하여 데이터를 단순화하였다.

여러 조건과 그룹화를 필요로 하므로 쿼리가 복잡해진다. 먼저 1) 백신 접종자수 비율을 기준으로 상위 5개국을 알아내야 하며, 2) 데이터를 월별로 나누어야 한다. 3) 그리고 각 월별 데이터를 다시 국가별로 나누고, 4) 그 데이터를 그룹별로 각각 더해서 국가별/월별 합계를 구해야 한다.

엘라스틱서치 SQL은 일반 SQL에서 사용 가능한 복잡한 조건이 제대로 먹히지 않는 경우가 종종 있다. group by 조건 다중으로 사용되는 경우 의도한 대로 데이터가 조회되지 않을 수 있기 때문에 이번 차트에서는 Query DSL을 사용하여 데이터를 조회하였다.

먼저 SQL문을 사용하여 백신 접종자수 비율 상위 5개국을 조회한 후, 이 데이터를 Query DSL에서 사용하기 위해 condData 변수에 < match: < country: 국가명 >> 의 형태를 일별차트 가진 데이터의 배열로 변환하여 저장하였다.

그룹화를 위한 Query DSL은 다음과 같이 작성하였다. 먼저, query.bool.should에 위에서 구한 condData 배열을 값으로 전달하였다. SQL의 where절 처럼 작동하여, query.bool.should에서 country 컬럼이 국가명 값과 일치하는지(match)를 확인한다.

그룹화는 aggs로 설정한다. 첫 번째 그룹화는 월별로 데이터를 묶는 것이다. aggs 다음에 사용하는 group_by_month는 조회 데이터의 alias이므로 임의로 작성해주면 된다. 그러면 조회된 데이터의 이름이 group_by_month로 지정된다.

그룹화하고자 하는 대상이 date인 경우 date_histogram을 사용한다. field의 값은 date 형식을 가진 컬럼의 컬럼명으로 지정하고, interval에서는 그룹화할 시간 기준을 지정한다. 월별 데이터를 구해야 하므로 month로 지정하였다.

그룹화 내에서 또 그룹화가 필요한 경우 상위 그룹 내에서 aggs를 다시 지정하면 된다. 2단계 그룹화에서는 alias를 group_by_country로 지정하였다. 키워드를 기준으로 그룹화를 한다면 terms를 사용한다. terms 내에서 field의 값으로 country 컬럼을 지정하였다.

최종적으로 집계 함수의 결과값을 구한다. aggs를 두 번째 그룹화 내에서 한번 더 사용한다. 결과값의 alias는 monthly_vaccinations_per_million으로 지정하였다. sum 집계를 하기 위해 다음 필드명으로 sum을 지정하고 sum의 대상이 될 컬럼을 그 다음에서 field의 값으로 지정한다.

getDataQdsl 함수로 조회하면 다음과 같은 형태로 출력된다. 중첩되어있는 object의 경우 단순 console.log로는 자세한 내용 확인이 불가능하다. util 모듈을 사용하여 console.log(util.inspect(data, < showHidden: false, depth: null >)); 로 조회하면 모든 내용을 출력할 수 있다(util 모듈은 기본 제공 모듈이므로 설치 없이 require하여 사용 가능).

1차 그룹화의 alias로 지정한 group_by_month가 전체 object의 키로 지정되었다. 그 값으로 buckets라는 이름의 배열이 들어있다. buckets 배열은 2차 그룹화(group_by_country)에 대한 object와 그 키(날짜 데이터)로 구성되어 있고, 각 object는 마찬가지로 buckets라는 배열을 지닌다. 두 번째 buckets의 각 데이터에는 2차 그룹화의 키와, 각 키의 document 수, sum으로 집계한 값이 들어있다.

highchart의 라인차트는 x축 카테고리를 배열로 전달해주어야 한다. 따라서 월별 키값(group_by_month의 key_as_string)을 "연도-월" 형태로 파싱하여 배열에 추가하였다. 이 데이터를 dateValue라는 이름의 변수에 저장하였다.

차트를 그리기 위해 < name: 항목값, data: [값이 담긴 배열] >의 형태가 담긴 배열을 전달해준다 이 배열의 길이가 곧 라인의 개수가 된다. name의 값은 1개의 라인의 이름이고, data의 값은 x축의 항목에 대응되는 y축의 값이다. 따라서 이 배열의 길이는 x축에서 사용되는 배열의 길이와 같아야 한다. 이 데이터는 vaccinationData라는 이름의 변수에 저장하였다. vaccinationData를 완성하기 위한 코드가 길고 복잡해보이지만 단순히 쿼리 조회 결과를 순회하면서 새 객체에 저장한 결과일 뿐이므로 과정이 아주 복잡하지는 않다.

전달받은 데이터의 변수명을 그대로 사용하였다. dateValue는 xAxis.categories의 값으로 지정한다. 그리고 vaccinationData는 series의 값으로 지정한다.

KB자료는 86년부터이며, 댈러스 연방은행 자료는 1975년부터이다. 겹치는 구간의 그래프는 거의 동일해 보인다. 두 자료가 어떻게 만들어지는 확인해야 한다.

KB국민은행 자료


댈러스연방은행 자료(2005 = 100)

https://www.dallasfed.org/institute/houseprice/#tab2

우리나라 실질주택가격지수(2005 = 100)

출처 : 댈러스연방은행

금 대비 주택가격지수(1975 = 100)

금값과 대비한 우리나라 부동산 가격 그래프이다. 1975년을 100으로 두었을 때, 2001년까지 금값 대비 부동산 가격은 400가까이 상승했다가 2012년 108로 거의 복귀 했다. 부동산은 가격은 장기 우상향했고, 금값 변동에 따른 영향이 지배적이다.

출처 : 직접 제작

세계 주요도시 명목주택가격지수(댈러스연방은행 자료)

댈러스 연방은행이 발표한 2019년 3분기 전세계 주택 지수 자료이다. 데이터를 가공해 2013년 1분기를 100으로 두고 여러 국가의 주택 지수를 비교했다. 점선이 우리나라 주택지수이다. 우리나라와 비교해 다른 나라들의 주택 지수를 살펴볼 수 있다. 주택 가격에 대해 다른 나라들이 어떤 고민을 가지고 있는지도 살짝 볼 수 있다.

https://www.dallasfed.org/institute/houseprice/#tab2

독일, 프랑스, 일본, 한국, 미국의 명목 주택가격 지수(2005 = 100)

독일, 프랑스, 일본, 한국, 미국의 실질 주택가격 지수(2005 = 100)

미국 명목주택가격지수(2005 = 100)

명목주택가격지수로 살펴본 미국 주택가격 그래프이다. 1975년부터 2018년까지 우상향하는 모습이다. 2006년을 정점으로 2007년 살짝 꺾이기 시작해 2011년 바닥을 찍고 2018년까지 다시 가파르게 상승했다.

2013년 이후 전국 아파트 가격 변화

2013년 1월 이후 아파트 가격 그래프는 2007년과는 사뭇 다르다. 우선 가장 일별차트 많이 오른 곳은 제주가 아니다. 서울이다. 2013년 1월부터 2019년 8월까지 74% 올랐다. 다음으로 많이 오른 곳이 제주로 60% 올랐다. 제주는 2013년 전에도 많이 올랐다. 전국은 평균 23% 상승했으며, 경기도는 24%로 전국 평균과 비슷했다. 2013년보다 떨어진 곳도 5곳이나 있는데, 충북, 충남, 전북, 경북, 경남이다. (전남은 14% 올랐다)

2007년 이후 전국 아파트 가격 변화

2007년 1월 이후 전국 아파트 가격 변화 그래프이다. 2007년 1월을 기준시점으로 아파트 가격이 어떻게 변화했는지를 보여준다. 시도 단위로 보았을 때 2007년 이후 아파트 가격이 오르지 않은 곳은 없다. 가장 많이 오른 곳은 제주이다. 100에서 256으로 156% 가량 올랐다. 제주, 광주, 부산, 전남, 대구, 서울 순이었다. 서울은 72% 정도 상승했다. 가장 낮게 오른 곳은 경기로 19% 올랐다. 전국 평균은 42%였다.

우리나라 지목별 토지이용현황

2019년 12월, 지목을 기준으로 살펴본 토지이용 현황이다. 전 국토의 64%는 지목이 임야이다. 논이 11%, 밭이 8%, 대지는 3%, 공장은 1%, 과수원도 1% 정도로 이용되고 있다.

출처 : 통계청

서울 아파트 매매/전세 변동율 차트

2019년 12월부터 매매와 전세 오름세가 줄어드는 모습이다. 매매 추세가 먼저 꺾이고, 뒤이어 전세가 꺾여 내려가고 있다.

분산형 차트로 본 매매/전세 변동율이다. 한 점은 한주를 의미하며, 가로축은 매매 변동율, 세로축은 전세 변동율이다. 2019년 한해 동안 빨간점에서, 노란점을 거쳐 초록점으로 이동하였다. 즉, 매매와 전세가 하락추세에서, 상승추세로 전환한 다음 점점 매매와 전세 증가율이 커지다가 마지막에 크게 꺾이는 모습이다.

안녕하세요 이번에는 파이썬으로 Column Chart를 그려볼거에요. Column Chart는 말 그대로 기둥처럼 생긴 차트입니다. 막대 그래프라고도 부르고요. 범주 데이터를 요약할 때 많이 사용합니다. 예를 일별차트 들어 자신이 운영하는 매장의 일별 매출이 궁금하다! 하면 일별 매출량을 한 범주로 해서 Column Chart로 그리면 쉽고 빠르게 매출의 추이와 가장 높았던 혹은 가장 낮았던 매출이 어느 날이었는 지 바로 확인할 수 있죠. 이를 통해 데이터 애널리틱스들은 매출이 가장 낮았던 날에는 일별차트 무슨 일이 있었는 지 원인 분석을 통해 솔루션을 제시하곤 하죠.

매출량 Column Chart

또 Column Chart는 두 가지 범주 데이터를 일별차트 비교하는데에도 많이 사용이 되는대요. 매장에 방문한 고객의 성별을 비교해보는 차트를 만들어 볼 수 있습니다.

자 그러면 jupyter notebook으로 어떻게 하면 위와 같은 그래프를 그릴 수 있는 지 이제 알아볼게요.

이번 포스팅에서 제가 그려볼 Column Chart는 Kakao 주식의 거래량 입니다. 주식 거래를 할 때 거래량을 보고 거래하는 사람이 있을 정도로 거래량은 꽤 유익한 정보라고 개인적으로는 생각합니다. 자세한 Jupyter notebook 전문은 아래를 참고해주세요.


0 개 댓글

답장을 남겨주세요