개발 꿀팁/PYTHON

파이썬을 이용해서 그림을 그립니다

Jammie 2022. 12. 12. 14:35
반응형

1. 환경 설정입니다.
리눅스 ubuntu에는 Numpy, Scipy, Matplotlib라는 세 개의 패키지를 설치해야 합니다.

각각 아래의 코드를 입력하여 설치합니다

2. 간단한 그림을 그리세요.
(1) 직선도입니다.

#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt

x = [0, 1] #x축입니다
y = [0, 1] #y축입니다
plt.figure( )# 그리기 개체를 만듭니다
plt.ylabel('ACC@1', size=20)#y 축의 좌표 size는 글꼴 크기입니다.
plt.xlabel ('Iters' , size=20) #x 축의 좌표입니다.
plt.title ('line', size=30) # 제목입니다.
plt.plot(x, y, linewidth=3, c='r'') #현재 객체에 그림을 그립니다. c는 색상, linewidth는 선의 너비입니다.
plt.show () # 현재 그림을 표시합니다.
plt.savefig("1.jpg")# 그림을 저장합니다.
결과는 그림과 같습니다

(2) 꺾은선 그래프입니다.

# # -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

# X축, Y축 데이터입니다
x = [0, 1, 2, 3, 4, 5, 6]
y = [0.3, 0.4, 2, 5, 3, 4.5, 4]
plt.figure (figsize=(8, 4) # 그리기 개체를 만듭니다
plt.plot (x, y, "b--", linewidth=1) # 현재 그리기 개체( X축, Y축, 파란색 점선, 선폭)
plt.xlabel("Time(s)) # X축 레이블입니다.
plt.ylabel("Volt") # Y축 레이블입니다.
plt.title("Line plot") # 그림 제목입니다.
plt.show () # 그림을 보여줍니다.
plt.savefig("line.jpg") # 그림을 저장합니다.
결과는 아래 그림과 같습니다

(3) 선을 두 개 긋습니다.

# # encoding=utf-8
import matplotlib.pyplot as plt
from pylab import * # 중국어 지원
# # mpl.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['xtick.direction'] = 'in' # 눈금 사분면에 있습니다.
plt.rcParams['ytick.direction'] = 'in'
names = [0.1,0.2,0.3,0.5,0.8,1]
x = range(len(names))
y = [0.476, 0.475, 0.475,0.474,0.473, 0.468]
y1 = [0.674, 0.671, 0.682,0.681,0.684,0.686]

#plt.plot(x, y, 'ro-')
#plt.plot(x, y1, 'bo-')
#pl.xlim(-1, 11) #가로축의 범위를 한정합니다
plt.ylim (0.45, 0.7) # 세로축의 범위를 한정합니다
plt.tick_params(labelsize=13)

plt.plot(names, y, 'r--',linewidth = 3,label='ACC@1')
plt.plot(names, y1, 'b--',linewidth = 3,label='ACC@5')

plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=15) # 범례를 유효하게 합니다. fontsize는 좌표 눈금 글꼴의 크기를 의미합니다.
# plt.xticks(x, names, rotation=100) #rotation 왼쪽 눈금의 기울기를 말합니다.
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel("$\\alpha$",size=18) #X축 레이블,그리스 문자 표시방식에 \\"를 추가합니다.
plt.ylabel("ACC",size=18) #Y축 레이블입니다.
# plt.title("A simple plot") # 제목입니다.
plt.savefig('alpha.eps')
plt.show()
결과는 그림과 같습니다

(4) 막대 그래프입니다.

# # -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import tensorflow as tf

name_list = ['1', '2', '3']
num_list = [574.0, 320.0, 400]
plt.bar(range(num_list), num_list, color='rgb', width=0.2, tick_label=name_list) #width를 사용하여 컬럼의 폭을 조정합니다. color를 색상으로 설정합니다.
plt.show()
결과는 그림과 같습니다.

(5) 산점도입니다.

import matplotlib.pyplot as plt

x_values=[1,2,3,4,5]
y_values=[1,4,9,16,25]
# s는 점의 크기입니다.
plt.scatter(x_values,y_values,s=100)

# 그래프 제목을 설정하고 좌표축에 레이블을 붙입니다
plt.title("Scatter pic",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Scatter of Value",fontsize=14)

# 눈금 표시의 크기를 설정합니다
plt.tick_params(axis='both',which='major',labelsize=14)

plt.show()

 

반응형