python

[python] plot / bar / scatter 그래프

독립성이 강한 ISFP 2022. 3. 24. 03:28
728x90
반응형

1. plot 그래프

 

형태: ax.plot(x좌표, y좌표)

fig=plt.figure(figsize=(10,5), dpi=50)
(ax1,ax2)=fig.subplots(1,2) 

ax1.plot([1,2,3],[1,2,4])
ax2.plot([1,2,3],[4,2,1])

fig=plt.figure(figsize=(10,5), dpi=50)
(ax1,ax2)=fig.subplots(1,2) 

##1
X=np.arange(0,100,10)
Y=X**2
ax1.plot(X,Y,'ob')

##2
X1=np.arange(10)
Y1=(X1-5)**2
ax2.plot(X1,Y1,'.--r')

fig=plt.figure(figsize=(5,5), dpi=50)
ax1=fig.subplots(1,1) 

##1
X=np.arange(0,100,10)
Y=X**2
ax1.plot(X,Y,'ob')

##2
X1=np2.arange(80)
Y1=(X1-5)**2
ax1.plot(X1,Y1,'.--r')

 

2. bar 그래프

 

형태: ax.bar(x좌표, 높이 ,width(폭))

fig=plt.figure(figsize=(10,5),dpi=100)
axs=fig.subplots(1,2)

data=np.array([5,25,50,20])
axs[0].bar(range(len(data)),data)
axs[1].bar(range(len(data)),data, align='edge')

 

# bar: various width

fig=plt.figure(figsize=(12,5), dpi=100)
axs=fig.subplots(1,3)

def bar_width(ax,data,w):
    ax.bar(range(len(data)),data, width=w)
    
data = np.array([5,25,50,20])
bar_width(axs[0], data, 0.8) # default width: 0.8
bar_width(axs[1], data, 0.5)
bar_width(axs[2], data, 1)

 # barh

fig=plt.figure(figsize=(5,5), dpi=100)
ax=fig.subplots()

data = np.array([5,25,50,20])
ax.barh(range(len(data)),data)

# 다중 막대차트 그리기( for 사용O /사용X )

fig=plt.figure(figsize=(5,5), dpi=100)
ax=fig.subplots()

data=np.array([[5,25,50,20],[4,23,51,17],[6,22,52,19]])
X=np.arange(4)

## for loop 사용하지 않은 경우 X

_=ax.bar(X+0.00, data[0], width=0.25) # ax.bar([0,1,2,3], [5,25,50,20], width=0.25)
_=ax.bar(X+0.25, data[1], width=0.25)
_=ax.bar(X+0.50, data[2], width=0.25)

## for loop 사용한경우 O

w1=0.25
for i, row in enumerate(data):
    _=ax.bar(X+i*w1, data[i], width=w1)

# dataframe으로 bar그래프 그리기

data=pd.read_table('dat_bar.txt',sep='\t', index_col=0)
data

fig=plt.figure(figsize=(5,5), dpi=100)
ax=fig.subplots()

ax.plot(range(len(data['iphone'])),data['iphone'],'b--o')
ax.plot(range(len(data['iphone'])),data['galaxy'],'r-o')

fig=plt.figure(figsize=(5,5), dpi=100)
ax=fig.subplots()

X=np.arange(0, 12)
ax.bar(X, data['iphone'],width=0.25)
ax.bar(X+0.25, data['galaxy'],width=0.25)

3. scatter 그래프

 

형태: ax.scatter (x좌표,y좌표)

fig=plt.figure(figsize=(4,4), dpi=100)
ax=fig.subplots()

data=np.random.uniform(size=(1000,2)) #랜덤 추출
type(data) #타입 확인
data[:10] #코드 확인

ax.scatter(data[:,0],data[:,1])

fig.show()
Out[40]:
array([[0.55336129, 0.03731936],  #data 의 형태 확인
       [0.2398961 , 0.48722611],
       [0.49628456, 0.23597968],
       [0.59471725, 0.49005728],
       [0.95240842, 0.91443345],
       [0.15020363, 0.38871761],
       [0.74528078, 0.67682047],
       [0.01846978, 0.25414807],
       [0.77007797, 0.84294918],
       [0.62568924, 0.19390422]])

fig=plt.figure(figsize=(8,4), dpi=100)
(ax1,ax2)=fig.subplots(1,2)

## ax1
data=np.random.uniform(0,1,size=(500,2)) #빨강
_=ax1.scatter(data[:,0],data[:,1],s=10,c='r')

data=np.random.uniform(0,1,size=(500,2)) #파랑
_=ax1.scatter(data[:,0],data[:,1],s=10,c='b')

## ax2
X1=np.random.uniform(0,0.5,size=500) # x의 범위
Y=np.random.uniform(0,1,size=500) #Y의 범위
_=ax2.scatter(X1,Y,s=10,c='r')

X2=np.random.uniform(0.5,1,size=500)
Y=np.random.uniform(0,1,size=500)
_=ax2.scatter(X2,Y,s=10,c='b')

728x90
반응형