OPEN HYPER STEP
← 목록으로 (math)
MATH · 5 / 15
math
CHAPTER 5 / 15
읽기 약 2
FUNCTION

좌표와 그래프: 데이터 시각화의 기초


핵심 개념

직교 좌표계 (x, y)와 1차 함수 y = ax + b — 선형 회귀의 시작점. matplotlib와 Canvas로 그래프 직접 그리기.

본문

직교 좌표계 = 데이터의 위치

📋 코드 (8줄)
       y축
        |
        |    • (3, 4)
        |
   -----+------ x축
        |
   • (-2, -1)
        |

x축(가로), y축(세로) — 두 축의 교점이 원점 (0, 0).

1차 함수 y = ax + b

PYTHON📋 코드 (26줄)
import matplotlib.pyplot as plt
import numpy as np

# y = 2x + 1
def linear(x, a=2, b=1):
    return a * x + b

x = np.linspace(-5, 5, 100)
y = linear(x)

plt.plot(x, y, label='y = 2x + 1')
plt.axhline(0, color='gray', linewidth=0.5)
plt.axvline(0, color='gray', linewidth=0.5)
plt.grid(True, alpha=0.3)
plt.legend()
plt.title('1차 함수 — 직선 그래프')
plt.show()


# 핵심 속성
# - 기울기 a: x가 1 증가할 때 y가 a 만큼 변화
# - y절편 b: x=0일 때 y의 값
# - x절편: y=0일 때 x = -b/a
print(f"기울기: 2 (x가 1↑일 때 y가 2↑)")
print(f"y절편: 1 (x=0일 때 y=1)")
print(f"x절편: {-1/2} (y=0일 때 x=-0.5)")

2차 함수 y = ax² + bx + c

PYTHON📋 코드 (17줄)
def quadratic(x, a=1, b=-2, c=1):
    return a * x**2 + b * x + c

x = np.linspace(-3, 5, 100)
y = quadratic(x)

plt.plot(x, y, label='y = x² - 2x + 1')
plt.axhline(0, color='gray', linewidth=0.5)
plt.grid(True, alpha=0.3)
plt.legend()
plt.title('2차 함수 — 포물선')
plt.show()


# 꼭짓점: x = -b/(2a) = -(-2)/(2*1) = 1
# 최솟값: f(1) = 1 - 2 + 1 = 0
print(f"꼭짓점: ({-(-2)/(2*1)}, {quadratic(1)})")

선형 회귀 — 1차 함수의 실전 응용

PYTHON📋 코드 (34줄)
import numpy as np
import matplotlib.pyplot as plt

# 가상 데이터: 광고비 vs 매출
ad_spend = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
revenue = np.array([15, 32, 45, 62, 79, 95, 112, 130, 145, 158])


# 최소제곱법으로 직선 a*x + b 의 a, b 찾기
n = len(ad_spend)
x_mean = np.mean(ad_spend)
y_mean = np.mean(revenue)

a = np.sum((ad_spend - x_mean) * (revenue - y_mean)) / np.sum((ad_spend - x_mean) ** 2)
b = y_mean - a * x_mean

print(f"y = {a:.2f} * x + {b:.2f}")
# y ≈ 1.59 * x + 0.0
# → 광고비 1 증가 시 매출 약 1.59 증가


# 시각화
plt.scatter(ad_spend, revenue, label='실제 데이터')
plt.plot(ad_spend, a * ad_spend + b, color='red', label=f'y = {a:.2f}x + {b:.2f}')
plt.xlabel('광고비')
plt.ylabel('매출')
plt.legend()
plt.title('광고비 vs 매출 — 선형 회귀')
plt.show()


# 미래 예측
ad_120 = a * 120 + b
print(f"광고비 120일 때 예상 매출: {ad_120:.0f}")

JavaScript Canvas로 그래프 그리기

JAVASCRIPT📋 코드 (26줄)
// canvas-graph.js — 브라우저에서 직접 그래프 그리기
const canvas = document.getElementById('graph');
const ctx = canvas.getContext('2d');
const W = canvas.width = 500;
const H = canvas.height = 400;
const cx = W / 2, cy = H / 2;
const scale = 20;

// 좌표축
ctx.strokeStyle = '#888';
ctx.beginPath();
ctx.moveTo(0, cy); ctx.lineTo(W, cy);  // x축
ctx.moveTo(cx, 0); ctx.lineTo(cx, H);  // y축
ctx.stroke();

// y = 2x + 1 그래프
ctx.strokeStyle = '#6366f1';
ctx.beginPath();
for (let x = -10; x <= 10; x += 0.1) {
  const y = 2 * x + 1;
  const px = cx + x * scale;
  const py = cy - y * scale;  // y축 뒤집기 (canvas는 아래가 +y)
  if (x === -10) ctx.moveTo(px, py);
  else ctx.lineTo(px, py);
}
ctx.stroke();

다음 챕터

CH.6 "비율과 퍼센트" — RPM/CTR/전환율 같은 실전 비즈니스 수학.


AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

내 데이터(CSV 또는 배열)를
분석해서 어떤 함수(1차/2차/지수)에
가장 잘 맞는지 시각화해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

한국 인디해커가 매출 데이터를
matplotlib으로 분석한 사례 5개와
인사이트 패턴을 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

내 GA4 / 매출 / 사용자 데이터를
선형 회귀로 분석하고 향후 6개월
예측 + 신뢰구간을 보고해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

2026년 데이터 시각화 도구
(matplotlib vs Plotly vs D3 vs Recharts)
트렌드와 추천을 솔직히 알려줘.

⭐ 이것만 기억하세요
좌표와 그래프: 데이터 시각화의 기초 이 3가지만 확실히 잡으세요
1.직교 좌표계 (x, y)는 데이터의 위치를 표현하는 가장 기본적인 시각화 도구
2.1차 함수 y = ax + b의 기울기 a와 y절편 b가 선형 회귀의 핵심 — 데이터에서 a, b를 찾아내는 기법
3.다음 챕터 CH.6에서 비율·백분율 — AdSense RPM·CTR·전환율 등 비즈니스 수학으로 진입


공유하기
진행도 5 / 15