int()参数必须是字符串,类似字节的对象或数字,而不是'list'

时间:2015-11-04 18:56:45

标签: python matplotlib graph

我正在尝试使用Python中的matplotlib.pyplot绘制图表,但收到错误:

  

int()参数必须是字符串,类似字节的对象或数字,而不是   '列表'

在倒数第二行。

以下是代码:

import numpy as np
import random
import matplotlib.pyplot as plt

#constants
mUn0 = 1350
Vcat = 18000000
n = 2 * pow(10,16)
e = 1.6 * pow(10,-19)

#variable
E = 1000
d = []
f = []

for i in range(1,E):
    j = log(n*e*mUn0) + log(i) - 0.5 * log(1+pow((mUn0*i/Vcat),2))
    f.append(j)
    d.append(log(i))
plt.xlabel('E')
plt.ylabel('V')
plt.subplot(2,1,2)
plt.subplot(f,d,'bo')
plt.show()

谢谢

2 个答案:

答案 0 :(得分:1)

pyplot.subplot()需要subplot(nrows, ncols, plot_number),所有三个选项都是整数。

Matplotlib正在尝试将您的fd列表转换为整数类型并失败。

答案 1 :(得分:1)

只是几个小问题。您必须使用plt.plot()进行绘制,并且您不能只使用log,需要np.log()或导入math模块,然后使用{{1 }}。我注意到我用math.log()

更改的行
#FIXED

它处理语法错误。使用子图可以使用一个图,但是你不需要它,所以我不知道是什么类型的逻辑错误(你想要两个图吗?)