我想绘制一些数据。第一列包含x数据。但是matplotlib没有绘制这个。我的错误在哪里?
import numpy as np
from numpy import cos
from scipy import *
from pylab import plot, show, ylim, yticks
from matplotlib import *
from pprint import pprint
n1 = 1.0
n2 = 1.5
#alpha, beta, intensity
data = [
[10, 22, 4.3],
[20, 42, 4.2],
[30, 62, 3.6],
[40, 83, 1.3],
[45, 102, 2.8],
[50, 123, 3.0],
[60, 143, 3.2],
[70, 163, 3.8],
]
for i in range(len(data)):
rhotang1 = (n1 * cos(data[i][0]) - n2 * cos(data[i][1]))
rhotang2 = (n1 * cos(data[i][0]) + n2 * cos(data[i][1]))
rhotang = rhotang1 / rhotang2
data[i].append(rhotang) #append 4th value
pprint(data)
x = data[:][0]
y1 = data[:][2]
y3 = data[:][3]
plot(x, y1, x, y3)
show()
这些台词不符合你的想法。
首先从数组中提取一个片段,这是整个数组(也就是说,只是一个副本),然后从该数组中提取第0、第2或第3行,而不是列。
你可以试试
等等
试试这个:
可以通过将数据转换为numpy数组来完成此操作:
还有几点:
您可以使用numpy以更清晰和矢量化的方式进行计算,如下所示
正如您所写,您的计算可能不会给出您想要的结果,因为
cos
etc以弧度作为输入,您的数字看起来像度数。相关问题 更多 >
编程相关推荐