- Matplotlib으로 그래프를 그려보자 (2)2024년 06월 05일
- Lv. 34 라이츄
- 작성자
- 2024.06.05.:11
https://koreanraichu.tistory.com/431
자 우리 저번시간에는 matplotlib으로 꺾은선 그래프를 그렸는데… 아니 사인함수 그렸잖아요… 아무튼, 이번에는 csv파일을 불러온 다음 그걸로 막대그래프를 그려보자. 왜 csv냐면 이거 리눅스로 쓰고 있음.
일단 이 CSV파일을 받아주시면 된다. 참고로 저거 동물의숲 무트코인임...
raddish=pd.read_csv("./raddish.csv",sep=";")
csv파일은 이렇게 불러오면 된다. 혹시 본인이 따로 파일을 준비했는데 그 파일이 엑셀파일이라면? pd.read_excel로 열면 된다. 혹시 본인이 따로 준비한 csv파일이 있다면 주의할 점이 하나 있는데, csv파일은 comma seperated 어쩌고라 보통 콤마(,)로 나뉘어져 있다. 근데 저 코드를 잘 보면 sep에 세미콜론이 들어가 있다. 아까도 설명했듯 csv파일은 보통 콤마로 나누기때문에 구분자가 ;라고 얘기를 안 해주면 판다스가 모르기때문에 오류...는 안뜨지만 표를 괴랄하게 읽는다. 그래서 sep=";"은 이거 csv파일이고 세미콜론으로 나뉘여있다고 말해주는거다. 공백이면 \s, 탭이면 \t 쓰면 된다.
그래프가 뭔 무트코인 옹졸에디션 됐어…
엥? loc에 숫자 들어갔어요? 예, 그 범례 위치 숫자로도 지정 가능합니다.
1. best, 0 (알아서 니가 적당한데 놔줘)
2. upper left/right 2,1 (위쪽 꼭지점)
3. lower left/right 3,4 (아래쪽 꼭지점)
4. right 5 (오른쪽)
5. center left/right 6,7 (가운데, 즉 꼭지점이 아니고 그래프의 양쪽 축(변)에 위치하게 된다)
6. upper/lower center 9,8 (위쪽/아래쪽 중앙. 그래프의 상/하변에 위치하게 된다)
7. center 10 (가운데)
대충 이렇게 지정하면 된다.쓰읍 이거 오전오후 나란히 둘 수 없나요?
보시다시피 정말 개고생했다… 여러분은 걍 엑셀 쓰세요.
bar_width = 0.2 N = raddish.shape[0] index = np.arange(N) fig, ax=plot.subplots(figsize = (14,7)) ax.bar(index - bar_width, raddish['AM'], color="#000000", label='AM', width = bar_width) ax.bar(index + bar_width, raddish['PM'], color='#999999', label='PM', width = bar_width) ax.legend(loc=2) plot.xticks(index, raddish['Date'])
일단 matplotlib에는 막대그래프가 여러개라고 겹쳐주는 기능이 없다. 그래서 가로 너비를 정하고 넘파이까지 동원해서 니들끼리 옆으로 빠져주세요 해야 한다… 보통은 저렇게 겹친다.
figsize는 그래프의 크기를 정하는거다. 그래서 위 캡처보다 아래 그래프가 좀 더 커진 걸 볼 수 있다. 그리고 xticks는 x축 간격 정하는건데 yticks라고 해서 y축 간격 정해주는 것도 있다. 일단 이정도...인데... 솔직히 저 그래프 딸랑 주면 님들 뭔지 모르잖아요?
제목이 너무 작아서 크기를 키우고싶은가?
bar_width = 0.2 N = raddish.shape[0] index = np.arange(N) fig, ax=plot.subplots(figsize = (14,7)) plot.rc("font", family='NanumGothic', size = 14) ax.bar(index - bar_width, raddish['AM'], color="#000000", label='AM', width = bar_width) ax.bar(index + bar_width, raddish['PM'], color='#999999', label='PM', width = bar_width) ax.legend(loc=2) plot.xticks(index, raddish['Date'], size = 12) plot.yticks(size = 12) plot.title("무트코인 가격",size = 20) ax.set_xlabel('날짜', size = 16) ax.set_ylabel('벨', size = 16) plot.show()
size = 원하는 크기 주면 된다. 보통은 일일이 하기 귀찮으니까 사이즈 변수에 담아놓고 변수 던져준다. plot.rc에 있는 family는 뭐냐면 이 그래프 글꼴 나눔고딕으로 해달라는 얘기인데, 이건 적용하려면 PC에 설치된 글꼴이어야 한다. PC에 설치만 되어있으면 프리텐다드 이런거 써도 된다.
착한 어린이 여러분들은 그냥 엑셀 쓰세요.
이거 심지어 다른 폰트는 적용하려고 설치된 이름이랑 파일명이랑 다 해봤는데 적용 안돼서 나눔고딕으로 롤백함…
'Coding > Python' 카테고리의 다른 글
Matplotlib으로 정규분포를 그려보자 (0) 2024.07.16 Matplotlib으로 그래프를 그려보자 (0) 2024.06.03 배수 판별을 해보자 (0) 2024.04.10 구구단을 이차원 배열로 출력해보자 (0) 2024.03.12 현재 시각을 십이지시로 바꿔보자 (0) 2024.01.10 다음글이전글이전 글이 없습니다.댓글