我正在尝试使用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()
谢谢
答案 0 :(得分:1)
pyplot.subplot()
需要subplot(nrows, ncols, plot_number)
,所有三个选项都是整数。
Matplotlib正在尝试将您的f
和d
列表转换为整数类型并失败。
答案 1 :(得分:1)
只是几个小问题。您必须使用plt.plot()
进行绘制,并且您不能只使用log
,需要np.log()
或导入math
模块,然后使用{{1 }}。我注意到我用math.log()
#FIXED
它处理语法错误。使用子图可以使用一个图,但是你不需要它,所以我不知道是什么类型的逻辑错误(你想要两个图吗?)