我是Python的新手,我正在学习matplotlib。我正在关注matplotlib官方用户手册中推荐的视频教程:'用matplotlib绘图'迈克穆勒。教师不会显示他如何导入matplotlib,而是立即使用plot(x,linear,x,square)等命令进行处理,其中x是他定义的序列。
我试图运行
import matplotlib
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
x = np.arange(100)
lines = plot(x, 'linear', 'g:+', x, 'square','r-o')
并收到错误
NameError: name 'plot' is not defined
当我尝试复制显示的示例时,我收到错误。这是代码:
from matplotlib.pyplot import *
import numpy as np
import pandas as pd
x = np.arange(100)
lines = plot(x, 'linear', 'g:+', x, 'square','r-o')
ValueError: x and y must have same first dimension
由于我只是重复教程中显示的命令,我无法理解我做错了什么。
您的建议将不胜感激。
答案 0 :(得分:1)
您需要使用plt.
之类的
lines = plt.plot(x, 'linear', 'g:+', x, 'square','r-o')
在Python函数中,不是"内置",即始终存在,必须从模块导入。 在这种情况下,行
from matplotlib import pyplot as plt
与
相同import matplotlib.pyplot as plt
表示您要将pyplot
matplotlib
模块导入您的命名空间,名称为plt
。
pyplot
模块是plot(), scatter()
和其他命令所在的位置。
如果你不希望在每次剧情电话会议之前写plt.
,你可以改为
from matplotlib.pyplot import *
将所有函数(符号)导入全局命名空间,现在您可以使用原始行:
lines = plot(x, 'linear', 'g:+', x, 'square','r-o')
plot()
电话您对plot()
的来电是错误的,ValueError
告诉您。
您正尝试将字符串'linear'
(6个元素)绘制为具有100个元素的x
。由于它们不匹配,plot()
会告诉您。
我猜:linear
和square
应该是
linear = x
square = x**2