【发布时间】:2018-06-15 09:34:17
【问题描述】:
我正在从文本文件中读取数据,但是当我这样做时,我需要在绘图函数中将这些值倍增,例如 3*sqrt(col1)= x1.append(3*math.sqrt(float(p[1])))。如何在绘图之前使用多个列号数据?例如,我将 col3 数据乘以 3*sqrt(col3) 并在绘制该数据之后。
#-------input.dat---------
# x y z
# col 1 col 2 col 3
# 3 5 5
# 5 6 4
# 7 7 3
import matplotlib.pyplot as plt
import numpy as np
import pylab as pl
import math
data = open('input.dat')
lines = data.readlines()
data.close()
x1=[]
y1=[]
z1=[]
plt.plot(1)
for line in lines[2:]:
p= line.split()
x1.append(3*math.sqrt(float(p[1])))
y1.append(3*math.sqrt(float(p[2])))
z1.append(3*math.sqrt(float(p[3])))
x=np.array(x1)
y=np.array(y1)
z=np.array(z1)
plt.subplot(311)
plt.plot(x,'b',label=" X figure ")
plt.subplot(312)
plt.plot(y,'r',label=" Y figure ")
plt.subplot(313)
plt.plot(x,z,'g',label=" X,Z figure ")
plt.show()
【问题讨论】:
-
问题是什么?你得到哪个错误?
-
@Joaquin 数学域错误!
-
这可能意味着您的表格中有负数。当您尝试对负数执行 sqrt 时,您会收到此错误。
标签: python python-3.x matplotlib math math.sqrt