티스토리 뷰
개요
* jupyter lab 과 Google Colaboratory 를 이용하여 실습해보았음
Lidar Sensor 로 물체를 스캔하여 얻은 높이 데이터를 csv 형태로 가지고 있다.
- 가로 16채널, 세로는 물체의 길이만큼
- 높이는 물체의 높이
이 데이터를 heatmap 으로,표현해보고, plotly 를 이용하여 3d 로 표현해보자
데이터 준비
- gist 에 올려둔 csv 파일을 다운로드 받자
- 2개의 파일을 준비해 두었음 (heatmap_01.csv, heatmap_02.csv
heatmap 으로 표현해보기
* heatmap_02.csv 를 이용해보겠음
!wget https://gist.githubusercontent.com/nicewook/4b8680388bd7b8923b30c7463e432ad2 /raw/3f184f45f488fbaf0b73d04312e494d0c54bd400/heatmap_02.csv
|
준비한 데이터 파일을 다운로드 받는다. |
import pandas as pd |
판다스를 이용한다. |
df = pd.read_csv('heatmap_02.csv', header=None, engine='python') |
다운로드 받은 heatmap_02.csv 를 읽는다. 이때, - 헤더가 없이 바로 데이터가 시작되며 - engine='python' 은 여기선 불필요하지만, 해두면 한글 깨짐을 막아준다. |
df.head() |
대략의 데이터 모양과 값들을 보자 |
import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline
hm = sns.heatmap(df, annot=False) hm.get_figure().savefig("heatmap_02.png") |
seaborn 패키지를 이용한다. 다른 것 필요없이 sns.heatmap(df, annot=False) 명령만으로 이미지를 볼 수 있다. 생성된 heatmap 은 .get_figure().savefig("filename.png") 명령으로 저장할 수 있다. |
plotly 로 3d 표현해보기
무료료 사용할 수 있으며, plotly 에 가입하여 계정과 API Key 를 만들어야 한다.
사이트: https://plot.ly/
노트북에 아래와 같이 넣어주기만 하면 3D 결과물을 볼 수 있다.
- 회전, 크기조절이 가능하다.
import plotly plotly.tools.set_credentials_file(username='YOUR_USERNAME', api_key='YOUR_KEY')
import plotly.plotly as py import plotly.graph_objs as go |
위에서 얻은 Username, API Key 를 넣어준다. |
# pd.DataFrame 의 값을 data에 넣어준다 # .as_matrix() -> .values 로 바꿔주면 된다. ()를 쓰지 않는것에 주의 data = [ go.Surface( #z=distance_df.as_matrix() z=df.values ) ] |
보여주고픈 판다스 DataFrame 을 data 로 변환해준다.
- .as_matrix() 는 deprecated 되었으니 - .value 를 사용하자 |
# Layout 을 설정해준다 layout = go.Layout( title='car', autosize=False, width=700, height=700, margin=dict( l=65, r=50, b=65, t=90 ) ) |
전체적인 Layout 을 설정해주고 |
# 그리고 생성 fig = go.Figure(data=data, layout=layout) py.iplot(fig, filename='elevations-3d-surface') |
생성하면 된다. 1) 회전, 크기 조절이 가능하며 2) 웹상에서 접근할 수도 있다. (공유하기 좋다) |
'python' 카테고리의 다른 글
GIL, CPython, IPython (0) | 2023.07.10 |
---|---|
pandas 시간정보로 .srt 자막을 만들어보자 (0) | 2018.08.22 |
pandas column 의 위아래 값의 차이를 비교해보자 (0) | 2018.08.17 |
keras model predict 를 API로 제공해보자 (0) | 2018.06.19 |
python daily log file 생성 및 기록하기 (4) | 2018.05.04 |

- Total
- Today
- Yesterday
- 잡학툰
- gocore
- bun
- intellij
- golang
- 2023
- strange
- ChatGPT
- 클린 아키텍처
- websocket
- 클린 애자일
- 오블완
- OpenAI
- Bug
- 인텔리제이
- 티스토리챌린지
- 엉클 밥
- go
- clean agile
- postgres
- middleware
- agile
- 독서후기
- Echo
- 독서
- 영화
- notion
- API
- solid
- Gin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |