Python 건어물:Python 을 공유 하여 6 가지 시각 화 도 표를 그립 니 다.

시각 화 도 표 는 상당히 여러 가지 가 있 지만 흔히 볼 수 있 는 것 은 바로 다음 과 같은 몇 가지 이다.다른 복잡 한 점 도 대부분 다음 과 같은 몇 가지 조합 을 바탕 으로 바 뀌 었 다.초보 자 들 에 게 는 이 홈 페이지 의 많은 도표 유형 에 놀 라 기 쉽다.종류 가 너무 많 기 때문에 몇 가지 도표 의 그리 기 방법 이 헷 갈 릴 수 있다.
그래서 여기 서 저 는 여섯 가지 흔히 볼 수 있 는 기본 도표 유형 을 정 리 했 습 니 다.비교 학습 을 통 해 튼튼한 기 초 를 다 질 수 있 습 니 다.
01.접선 도
접 는 선 그림 을 그립 니 다.만약 에 데이터 가 많 지 않 으 면 그 려 진 그림 은 굴절 상태 가 될 것 입 니 다.그러나 데이터 가 커지 면 다음 과 같은 우리 의 예제 에 100 개의 점 이 있 기 때문에 우 리 는 육안 으로 볼 수 있 는 부 드 러 운 곡선 이 될 것 입 니 다.
여기 서 나 는 세 개의 선 을 그립 니 다.plt.plt 를 세 번 만 실행 하면 됩 니 다.

import numpy as np
import matplotlib.pyplot as plt
x= np.linspace(0, 2, 100)
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()
 
02.산포도
사실 산 점도 와 접 는 선 도 는 같은 원리 로 산 점도 안의 점 을 선 으로 연결 하면 접 는 선 그림 이다.그래서 산 점 도 를 그립 니 다.선형 만 설정 하면 됩 니 다.
주의:여기 나 도 세 개의 선 을 그립 니 다.위 와 다른 것 은,나 는 하나의 plt.plot 만 사용 하면 됩 니 다.

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0., 5., 0.2)
#      ,      ,     
plt.plot(x, x, 'r--', x, x**2, 'bs', x, x**3, 'g^')
plt.show()
 
03.직사 도
직사 도 는 모두 가 낯 설 지 않다.여기 서 샤 오 밍 은 난이 도 를 높 여 한 장의 그림 에서 두 개의 주파수 직사 도 를 그 렸 다.이것 은 실제 장면 에서 도 만 날 수 있 을 것 이다.왜냐하면 이것 은 정말 비교 하기 편리 하고 나무 가 있 기 때문이다.

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(19680801)
mu1, sigma1 = 100, 15
mu2, sigma2 = 80, 15
x1 = mu1 + sigma1 * np.random.randn(10000)
x2 = mu2 + sigma2 * np.random.randn(10000)
# the histogram of the data
# 50:     50 
# facecolor:  ;alpha:   
# density:          
n1, bins1, patches1 = plt.hist(x1, 50, density=True, facecolor='g', alpha=1)
n2, bins2, patches2 = plt.hist(x2, 50, density=True, facecolor='r', alpha=0.2)
# n:   ;bins:    ;patches:     。
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(110, .025, r'$\mu=100,\ \sigma=15$')
plt.text(50, .025, r'$\mu=80,\ \sigma=15$')
#   x,y      
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()
 
04.막대 그래프
마찬가지 로 간단 한 기둥 모양 의 그림 은 그리 지 않 겠 습 니 다.여 기 는 세 가지 어 려 운 그림 을 그립 니 다.
4.1 병렬 막대 그래프

import numpy as np
import matplotlib.pyplot as plt
size = 5
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)
x = np.arange(size)
#       ,    n  
total_width, n = 0.8, 3  
width = total_width / n
#     x   
x = x - (total_width - width) / 2
#         
plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.bar(x + 2 * width, c, width=width, label='c')
plt.legend()
plt.show()
 
4.2 중첩 막대 그래프

import numpy as np
import matplotlib.pyplot as plt
size = 5
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)
x = np.arange(size)
#         
plt.bar(x, a, width=0.5, label='a',fc='r')
plt.bar(x, b, bottom=a, width=0.5, label='b', fc='g')
plt.bar(x, c, bottom=a+b, width=0.5, label='c', fc='b')
plt.ylim(0, 2.5)
plt.legend()
plt.grid(True)
plt.show()
 
05.떡 그림
5.1 일반 떡 지도

import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
#        ,0     
explode = (0, 0.1, 0, 0) 
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
  shadow=True, startangle=90)
# Equal aspect ratio           
plt.axis('equal') 
plt.show()
 
5.2 플러그 인 그림

import numpy as np
import matplotlib.pyplot as plt
#        
size = 0.3
vals = np.array([[60., 32.], [37., 40.], [29., 10.]])
#   get_cmap      
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))
print(vals.sum(axis=1))
# [92. 77. 39.]
plt.pie(vals.sum(axis=1), radius=1, colors=outer_colors,
  wedgeprops=dict(width=size, edgecolor='w'))
print(vals.flatten())
# [60. 32. 37. 40. 29. 10.]
plt.pie(vals.flatten(), radius=1-size, colors=inner_colors,
  wedgeprops=dict(width=size, edgecolor='w'))
# equal      
plt.axis('equal') 
plt.show()
 
5.3 극 축 떡 그림
쿨 현 이 라면 극 축 전 그림 도 손 꼽 힌 다.여기 도 배 워 야 한다.

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(19680801)
N = 10
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
ax = plt.subplot(111, projection='polar')
bars = ax.bar(theta, radii, width=width, bottom=0.0)
# left      ,
# radii              (  )
# width       
#           
for r, bar in zip(radii, bars):
 bar.set_facecolor(plt.cm.viridis(r / 10.))
 bar.set_alpha(0.5)
plt.show()
 
06.3 차원 그림
6.1 3 차원 산 점도 그리 기

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = np.random.randint(0, 255, size=[40, 40, 40])
x, y, z = data[0], data[1], data[2]
ax = plt.subplot(111, projection='3d') #            
#           ,        
ax.scatter(x[:10], y[:10], z[:10], c='y') #      
ax.scatter(x[10:20], y[10:20], z[10:20], c='r')
ax.scatter(x[30:40], y[30:40], z[30:40], c='g')
ax.set_zlabel('Z') #    
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()
 
6.2 3 차원 평면도 그리 기

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
#          help(function)   , :help(ax.plot_surface)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
plt.show()
 
총결산
위 에서 말 한 것 은 소 편 이 소개 한 Python 이 6 가지 시각 화 도 표를 그 리 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기