Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 시각화
- 월간결산
- Tistory
- 서평
- matplotlib
- MATLAB
- 파이썬
- Pandas
- Visualization
- 한빛미디어서평단
- 통계학
- 서평단
- Ga
- 매틀랩
- python visualization
- 리눅스
- 딥러닝
- Python
- 파이썬 시각화
- Linux
- 독후감
- tensorflow
- 티스토리
- Google Analytics
- 블로그
- 텐서플로
- SQL
- Blog
- 한빛미디어
- MySQL
Archives
- Today
- Total
pbj0812의 코딩 일기
[PYTHON] 태극문양 그리기 본문
0. 목표
- 태극문양 그리기
1. 실습
1) library 호출
import matplotlib.pyplot as plt
import math
import numpy as np
2) 반원 데이터 생성
- 붉은 반원, 푸른 반원으로 쪼개서 그리기
# 붉은 반원
x1 = np.linspace(-math.sqrt(2.5 * 2.5 * 9 / 13), 2.5, 1000)
y1 = []
for i in x1:
y1.append(math.sqrt((2.5 * 2.5) - (i * i)))
x2 = np.linspace(math.sqrt(2.5 * 2.5 * 9 / 13), 2.5, 1000)
y2 = []
for i in x2:
y2.append(-math.sqrt((2.5 * 2.5) - (i * i)))
x_upper = list(x1) + list(x2)[::-1]
y_upper = list(y1) + list(y2)[::-1]
# 푸른 반원
x3 = np.linspace(-2.5, -math.sqrt(2.5 * 2.5 * 9 / 13), 1000)
y3 = []
for i in x3:
y3.append(math.sqrt((2.5 * 2.5) - (i * i)))
x4 = np.linspace(-2.5, math.sqrt(2.5 * 2.5 * 9 / 13), 1000)
y4 = []
for i in x4:
y4.append(-math.sqrt((2.5 * 2.5) - (i * i)))
x_lower = list(x3)[::-1] + list(x4)
y_lower = list(y3)[::-1] + list(y4)
3) 작은 원 데이터 생성
- 붉은 원, 푸른 원 따로 생성
- 원점을 중심으로 하는 작은 원을 생성한 뒤 좌표 이동하는 방식
# 푸른 원
x_little1 = np.linspace(-1.25, 1.25, 1000)
y_little_upper_1 = []
y_little_lower_1 = []
for i in x_little1:
y_little_upper_1.append(math.sqrt((1.25 * 1.25) - (i * i)))
y_little_lower_1.append(-math.sqrt((1.25 * 1.25) - (i * i)))
x_little1 = list(map(lambda x : x + (15 / (4 * math.sqrt(13))), x_little1))
y_little_upper_1 = list(map(lambda x : x + ((-2 / 3) * (15 / (4 * math.sqrt(13)))), y_little_upper_1))
y_little_lower_1 = list(map(lambda x : x + ((-2 / 3) * (15 / (4 * math.sqrt(13)))), y_little_lower_1))
x_little1 = x_little1 + x_little1[::-1]
y_little1 = y_little_upper_1 + y_little_lower_1[::-1]
# 붉은 원
x_little2 = np.linspace(-1.25, 1.25, 1000)
y_little_upper_2 = []
y_little_lower_2 = []
for i in x_little2:
y_little_upper_2.append(math.sqrt((1.25 * 1.25) - (i * i)))
y_little_lower_2.append(-math.sqrt((1.25 * 1.25) - (i * i)))
x_little2 = list(map(lambda x : x - (15 / (4 * math.sqrt(13))), x_little2))
y_little_upper_2 = list(map(lambda x : x + ((2 / 3) * (15 / (4 * math.sqrt(13)))), y_little_upper_2))
y_little_lower_2 = list(map(lambda x : x + ((2 / 3) * (15 / (4 * math.sqrt(13)))), y_little_lower_2))
x_little2 = x_little2 + x_little2[::-1]
y_little2 = y_little_upper_2 + y_little_lower_2[::-1]
4) 그리기
# 도화지
fig, ax = plt.subplots()
fig.set_size_inches(15, 10)
ax.set_xticks([])
ax.set_yticks([])
ax.set_xlim([-7.5, 7.5])
ax.set_ylim([-5, 5])
# 반원
ax.fill(x_lower, y_lower, '#144A9D')
ax.fill(x_upper, y_upper, '#D0303C')
# 작은 원
ax.fill(x_little1, y_little1, '#144A9D')
ax.fill(x_little2, y_little2, '#D0303C')
- 결과
2. 참고
- 태극기
'ComputerLanguage_Program > PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib 으로 Parallel Categories Charts 구현하기 (0) | 2021.08.18 |
---|---|
[PYTHON] GridSpec 을 이용한 여러 그래프를 같이 그리기 (0) | 2021.08.17 |
[PYTHON] matplotlib 으로 전단지 만들기 (0) | 2021.08.15 |
[PYTHON] indicate_inset_zoom 을 이용한 줌 인 (0) | 2021.08.12 |
[PYTHON] table 을 사용하여 그래프와 테이블을 같이 그리기 (0) | 2021.08.11 |
Comments