반응형
1. Import
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
2. plt.plot()
plt.plot([1, 2, 3, 4])
plt.show()
예시) x, y를 산점도로 표현(x: 0~100 임의의 정수 100개, y: 0~10 임의의 정수 100개)
x = np.random.randint(0, 100, 100)
y = np.random.randint(0, 10, 100)
plt.plot(x, y, 'bo')
plt.show()
* 정규분포를 구성하는 데이터 1000개를 산점도로 표시(평균 0, 표준편차 1)
normal_x = np.arange(1000)
normal_y = np.random.randn(1000)
plt.plot(normal_x, normal_y, '*')
plt.show()
3. plt.axis(), plt.title()
# plt.axis([x축 최소, x축 최대, y축 최소, y축 최대])
plt.axis([0, 5, 0, 20])
plt.title('First Plt')
# plt.plot(x축, y축, 옵션)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.show()
4. plt.hist()
plt.hist(normal_y, bins = 100) # plt.hist(value, bins = 간격)
plt.show()
5. Import math, 삼각함수 그래프
import math
t = np.arange(0, 2.5, 0.05)
y1 = np.sin(math.pi*t)
y2 = np.sin(math.pi*t+math.pi/2)
y3 = np.sin(math.pi*t-math.pi/2)
plt.plot(t, y1, 'b*', t, y2, 'g*', t, y3, 'r*')
plt.show()
6. plt.subplot()
plt.subplot(311) # plt.subplot(3행 1열 1번째)
plt.plot(t, y1, 'b*')
plt.subplot(312) # plt.subplot(3행 1열 2번째)
plt.plot(t, y2, 'g*')
plt.subplot(313) # plt.subplot(3행 1열 3번째)
plt.plot(t, y3, 'r*')
plt.show()
예시) 정규분포(평균 0, 표준편차 3, 1000개)
- 2행 1열 1번째: 산포도
- 2행 1열 2번째: 히스토그램
y = np.random.normal(0, 3, 1000)
plt.subplot(211)
plt.plot(np.arange(1000), y, '*')
plt.subplot(212)
plt.hist(y, bins=100)
plt.show()
- 1행 1열 1번째: 산포도
- 1행 2열 2번째: 히스토그램
y = np.random.normal(0, 3, 1000)
plt.subplot(121)
plt.plot(np.arange(1000), y, '*')
plt.subplot(122)
plt.hist(y, bins=100)
plt.show()
7. plt.text()
plt.title('y = x^2')
plt.xlabel('x')
plt.ylabel('y')
plt.axis([0, 5, 0, 20]) # x축, y축 범위 지정
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'b*')
plt.text(1, 1, 'First')
plt.text(2, 4, 'Second')
plt.text(3, 9, 'Third')
plt.text(4, 16, 'Fourth')
plt.text(1.1, 12, r'$y = x^2$', fontsize=20, bbox= {'facecolor': 'green', 'alpha': 0.2})
# plt.text(x좌표, y좌표, 식, 스타일)
# alpha: 불투명도(1이 최대)
# facecolor: 배경색
plt.grid() # 격자선
plt.show()
예시) 무작위 정수(0~12) 12개를 추출하여 판매량으로 사용.
- X축: 1~12월, Y축: 판매량
- 각 축에는 적절한 xlabel, ylabel을 지정하고 차트의 바탕에는 그리드가 표시
- 제목: '월별 판매량'
- 최고 판매량의 위치에는 텍스트를 추가하여 강조
# max값을 가지는 인덱스 리스트를 찾는 함수 정의
def max_value_index_list(array):
result = []
max_value = array.max()
for i in range(len(array)):
if array[i] == max_value:
result.append(i)
return result
x = np.arange(1, 13)
y = np.random.randint(0, 12, 12)
# 차트 제목
plt.title('Sales Rate per Month')
# 축 명칭
plt.xlabel('Month')
plt.ylabel('Sales Rate')
# 축 범위
plt.axis([0, 13, -1, 14])
# 최대값 표시
for i in max_value_index_list(y):
plt.text(i, y[i], 'max')
# 격자선
plt.grid()
plt.xticks(np.arange(1, 13))
plt.plot(x, y, 'r*')
# 범례
plt.legend(['Sales Rate'])
plt.show()
# 저장
plt.savefig('Sales Rate per Month')
반응형
'프로그래밍' 카테고리의 다른 글
[Python] Matplotlib 활용(3) (0) | 2021.05.13 |
---|---|
[Python] Matplotlib 활용(2) (0) | 2021.05.10 |
[Python] Data Aggregation (0) | 2021.05.09 |
[Python] Data Manipulation (0) | 2021.05.07 |
[Python] Pandas Library(Series)(2) (0) | 2021.05.06 |