[PYTHON] matplotlib를 사용하여 부드러운 선 그래프 생성
PYTHONmatplotlib를 사용하여 부드러운 선 그래프 생성
다음은 matplotlib를 사용하여 플롯을 생성하는 파이썬 스크립트입니다.
#!/usr/bin/python
import matplotlib.pyplot as plt
import time
import numpy as np
from scipy.interpolate import spline
# Local variables
x = []
y = []
# Open the data file for reading lines
datafile = open('testdata1.txt', 'r')
sepfile = datafile.read().split('\n')
datafile.close()
# Create a canvas to place the subgraphs
canvas = plt.figure()
rect = canvas.patch
rect.set_facecolor('white')
# Iterate through the lines and parse them
for datapair in sepfile:
if datapair:
xypair = datapair.split(' ')
x.append(int(xypair[1]))
y.append(int(xypair[3]))
# Define the matrix of 1x1 to place subplots
# Placing the plot1 on 1x1 matrix, at pos 1
sp1 = canvas.add_subplot(1,1,1, axisbg='w')
sp1.plot(x, y, 'red', linewidth=2)
# Colorcode the tick tabs
sp1.tick_params(axis='x', colors='red')
sp1.tick_params(axis='y', colors='red')
# Colorcode the spine of the graph
sp1.spines['bottom'].set_color('r')
sp1.spines['top'].set_color('r')
sp1.spines['left'].set_color('r')
sp1.spines['right'].set_color('r')
# Put the title and labels
sp1.set_title('matplotlib example 1', color='red')
sp1.set_xlabel('matplot x label', color='red')
sp1.set_ylabel('matplot y label', color='red')
# Show the plot/image
plt.tight_layout()
plt.grid(alpha=0.8)
plt.savefig("example6.eps")
plt.show()
그것은 다음과 같이 플롯을 생성합니다.
라인 대신에 SMOOTH 그래프를 생성하려하지만 결과를 얻지 못했습니다. 이 동영상을 보려고했습니다. https://www.youtube.com/watch?v=uSB8UBrbMfk
누군가 내게 변화를 제안 할 수 있습니까?
해결법
-
==============================
1.나는이 일을 얻었다! 의견에 감사드립니다. 다음은 업데이트 된 코드입니다.
나는이 일을 얻었다! 의견에 감사드립니다. 다음은 업데이트 된 코드입니다.
#!/usr/bin/python import matplotlib.pyplot as plt import time import numpy as np from scipy.interpolate import spline # Local variables x = [] y = [] # Open the data file for reading lines datafile = open('testdata1.txt', 'r') sepfile = datafile.read().split('\n') datafile.close() # Create a canvas to place the subgraphs canvas = plt.figure() rect = canvas.patch rect.set_facecolor('white') # Iterate through the lines and parse them for datapair in sepfile: if datapair: xypair = datapair.split(' ') x.append(int(xypair[1])) y.append(int(xypair[3])) x_sm = np.array(x) y_sm = np.array(y) x_smooth = np.linspace(x_sm.min(), x_sm.max(), 200) y_smooth = spline(x, y, x_smooth) # Define the matrix of 1x1 to place subplots # Placing the plot1 on 1x1 matrix, at pos 1 sp1 = canvas.add_subplot(1,1,1, axisbg='w') #sp1.plot(x, y, 'red', linewidth=2) sp1.plot(x_smooth, y_smooth, 'red', linewidth=1) # Colorcode the tick tabs sp1.tick_params(axis='x', colors='red') sp1.tick_params(axis='y', colors='red') # Colorcode the spine of the graph sp1.spines['bottom'].set_color('r') sp1.spines['top'].set_color('r') sp1.spines['left'].set_color('r') sp1.spines['right'].set_color('r') # Put the title and labels sp1.set_title('matplotlib example 1', color='red') sp1.set_xlabel('matplot x label', color='red') sp1.set_ylabel('matplot y label', color='red') # Show the plot/image plt.tight_layout() plt.grid(alpha=0.8) plt.savefig("example6.eps") plt.show()
새로운 음모는 이렇게 보입니다.
from https://stackoverflow.com/questions/25825946/generating-smooth-line-graph-using-matplotlib by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 모델 limit_choices_to = { 'user': 사용자} (0) | 2018.11.03 |
---|---|
[PYTHON] 팬더 : 막대 그래프 xtick 주파수 (0) | 2018.11.03 |
[PYTHON] Pathos로 파이썬 다중 처리 (0) | 2018.11.03 |
[PYTHON] 초보자 파이썬 하위 프로세스 : "쓰기 오류 : 브로큰 파이프" (0) | 2018.11.03 |
[PYTHON] dict의 값을 사용하여 pandas 데이터 프레임 필터링 (0) | 2018.11.03 |