2016-07-13 4 views
0

6 개의 열을 가진 데이터 파일 (data.txt)이 있습니다. 열 1과 4는 열 2의 x와 y 데이터이고 열 3은 열 1과 열 4와 5의 (비대칭 인) 오류 막대입니다. 열 여섯의 (비대칭) 오차 막대 인 :Python - 오류 막대를 사용하여 데이터 파일에서 플로팅 하시겠습니까?

100 0.77 1.22 3 0.11 0.55 
125 0.28 1.29 8 0.15 0.53 
150 0.43 1.11 14 0.10 0.44 
175 0.33 1.01 22 0.18 0.49 
200 0.84 1.33 34 0.11 0.48 

나는이을 플롯 할 무엇. 나는 열 이러한 오차 막대를 관련하는 방법을 잘 (뿐만 아니라 다른 어떤 내가 놓친) 아니에요 어디 plotfile의 괄호 사이에

import numpy as np 
import matplotlib.pyplot as plt 

plt.plotfile(......) 

plt.show() 

비트를 사용하는 것입니다 필요가 알고있다. 완벽하게 numpy.loadtxt 작품을 사용

+1

; 'numpy.loadtxt'로 데이터를 읽고'plt.errorbar'로 그려 보는 것이 어떻습니까? 그러면 코드가 몇 줄 추가 될뿐 아니라 코드를 쉽게 읽고 이해할 수있게됩니다. – Bart

답변

1

:

plotfile`에 대한 꽤 고급 케이스()`처럼 보인다
import numpy as np 
import matplotlib.pyplot as plt 

data = np.loadtxt("data.txt") 
x = data[:, 0] 
y = data[:, 3] 
# errorbar expects array of shape 2xN and not Nx2 (N = len(x)) for xerr and yerr 
xe = data[:, 1:3].T 
ye= data[:, 4:].T 

plt.errorbar(x, y, xerr=xe, yerr=ye, fmt=".-") 

# if you want a log plot: 
plt.xscale("log") 
plt.yscale("log") 

plt.show() 
+0

환상적! 이것을 대칭 로그 플롯으로 만들기위한 여분의 라인 또는 2 개의 코드가 있습니까? (x와 y 모두)? 이 경우 데이터를 고려할 필요는 없지만 향후 데이터에 로그 플롯이 필요하다고 가정합니다. – Aomine