어질어질시각화

은4·2025년 4월 22일

T I L

목록 보기
35/42

Import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score,mean_absolute_error
import scipy.stats as stats
import math
import warnings
import folium
from folium.plugins import MarkerCluster


# 샘플링 (예: 1000개의 무작위 샘플)
df_sample = df.sample(n=1000, random_state=42)

# 지도 중심 좌표 계산 (샘플 데이터의 평균값)
center_lat = df_sample['latitude'].mean()
center_lon = df_sample['longitude'].mean()

# 지도 생성
m = folium.Map(location=[center_lat, center_lon], zoom_start=12)

# 클러스터 생성
marker_cluster = MarkerCluster(name='모든 마커').add_to(m)

# 마커 추가 (팝업 포함 예시)
for idx, row in df_sample.iterrows():
    lat = row['latitude']
    lon = row['longitude']
    
    popup_info = folium.Popup(f"""
        <b>Index:</b> {idx}<br>
        <b>Lat:</b> {lat}<br>
        <b>Lon:</b> {lon}
    """, max_width=300)

    folium.Marker([lat, lon], popup=popup_info).add_to(marker_cluster)

# 레이어 컨트롤 추가 (클러스터 On/Off 가능)
folium.LayerControl().add_to(m)

# 지도 저장
m.save('map.html')

# Jupyter 노트북에서 크게 보기
from IPython.display import IFrame
IFrame('map.html', width=1200, height=800)

import folium
from folium.plugins import MarkerCluster
center_lat = df['latitude'].mean()
center_lon = df['longitude'].mean()
m = folium.Map(location=[center_lat, center_lon], zoom_start=12)

# 마커 클러스터는 쓰지 않고, 점처럼 아주 작게 표시
for idx, row in df.iterrows():
    lat = row['latitude']
    lon = row['longitude']
    folium.CircleMarker(
        location=[lat, lon],
        radius=1.0,  # 점 크기 (작게!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
        color='blue',  # 외곽선 색
        fill=True,
        fill_color='blue',
        fill_opacity=0.7,
        opacity=0.5
    ).add_to(m)

# 저장 및 보기
m.save('map_dots.html')


# 맨해튼만!!
df_manhattan = df[df['neighbourhood_group_cleansed'] == 'Manhattan']

# 색상 정의! 5단계로 분류 (매우저렴 , 저렴, 중간, 고가, 초고가고가)
def get_color(price):
    if price < 80:
        return 'green'
    elif price < 150:
        return 'yellow'
    elif price < 300:
        return 'orange'
    elif price < 600:
        return 'red'
    else:
        return 'purple'


# 지도 중심
center_lat = df_manhattan['latitude'].mean()
center_lon = df_manhattan['longitude'].mean()
m = folium.Map(location=[center_lat, center_lon], zoom_start=13)

# CircleMarker 추가 (색상은 가격에 따라)
for idx, row in df_manhattan.iterrows():
    color = get_color(row['price'])
    folium.CircleMarker(
        location=[row['latitude'], row['longitude']],
        radius=1.2,  # 작지만 조금 더 잘 보이게
        color=color,
        fill=True,
        fill_color=color,
        fill_opacity=0.6,
        opacity=0.4
    ).add_to(m)

# 저장
m.save('manhattan_price_colored.html')
# 웹에서 나타내기 (맨해튼을 가격별로 시각화화)
import webbrowser
webbrowser.open('manhattan_price_colored.html')

오늘 하루종일 붙잡고 있던 시각화 코드

진심 죽어버리는줄 알았다 GPT쓰고싶어요제발

어제오늘은 TIL을 제대로쓸 기력이 없다 진짜 코드만 300줄 짠듯


근데 어

이건아니지

ㅅㅅㅅㅅㅅㅅㅅㅅㅅ미친돌아갔다!!!!!!!!!!!!!!!!!!1

profile
Piano에서 IT로

0개의 댓글