python 은 플러그 인 을 이용 하여 접 는 선 을 부 드 럽 게 곡선 처리 합 니 다.
필요 한 라 이브 러 리 구현
numpy、scipy、matplotlib
플러그 인 구현
nearest:가장 가 까 운 플러그 인
계단 삽입 값
slinear:선형 플러그 인
quadratic,cubic:2,3 단계 B 개의 곡선 플러그 값
-
의합 과 삽입 값 의 차이
1.삽입 값:쉽게 말 하면 삽입 값 은 원래 의 데이터 에 따라 채 우 는 것 이 고 마지막 에 생 성 된 곡선 은 반드시 원래 의 점 을 초과 합 니 다.
2 의합:의합 은 기 존의 데 이 터 를 통 해 곡선 계 수 를 조정 하여 곡선 과 이미 알 고 있 는 점 집합 의 차이(최소 2 곱 하기)를 최소 화하 고 마지막 에 생 성 된 곡선 이 반드시 원래 의 점 을 거 치 는 것 은 아니다.
코드 구현
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate
#
x =np.array([0, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 70, 8, 9,10])
#
y =np.array([0.8579087793827057, 0.8079087793827057, 0.7679087793827057, 0.679087793827057,
0.5579087793827057, 0.4579087793827057, 0.3079087793827057, 0.3009087793827057,
0.2579087793827057, 0.2009087793827057, 0.1999087793827057, 0.1579087793827057,
0.0099087793827057, 0.0079087793827057, 0.0069087793827057, 0.0019087793827057,
0.0000087793827057])
# x , 0 10 0.5 200
xnew =np.arange(0,10,0.1)
#
func = interpolate.interp1d(x,y,kind='cubic')
# xnew func ynew,xnew ynew
ynew = func(xnew)
#
plt.plot(x, y, "r", linewidth=1)
#
plt.plot(xnew,ynew)
# x,y
plt.xlabel("The distance between POI and user(km)")
plt.ylabel("probability")
#
plt.title("The content similarity of different distance")
# x,y
plt.xlim(0,10,8)
plt.ylim(0,1)
plt.show()
그 려 진 곡선,빨간색 은 부 드 럽 게 처리 되 지 않 은 접 는 선,파란색 은 부 드 럽 게 처리 한 곡선 입 니 다.
주의 사항
1.x,y 는 원래 의 데이터(소량)
2.xnew 는 하나의 배열 이 고 조건:x*8838°xnew
예 를 들 어 x 의 최소 치 는-2.931 이 고 최대 치 는 10.312 이다.xnew 의 왼쪽 경 계 는-2.931 보다 작고 오른쪽 경 계 는 10.312 보다 크다.물론 간격 도 주의 하 는 것 이 좋 습 니 다.x 의 정밀도 보다 작 으 면 좋 습 니 다.
3.func 는 함수 이 고 안의 매개 변수 x,y,kind,x,y 는 원래 데이터 의 x,y,kind 를 지정 해 야 하 는 방법 입 니 다.
4.ynew 는 xnew 배열 과 func 함 수 를 통 해 생 성 되 어야 합 니 다.이론 적 으로 xnew 배열 의 값 이 많 을 수록 생 성 된 곡선 이 부 드 럽 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.