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 가지 시각 화 도 표를 그 리 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.