原问题
我是Python的新手,我正在学习matplotlib。我正在遵循Mike Muller在matplotlib的官方用户手册中推荐的视频教程:'Plotting with 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因为我只是简单地重复教程中显示的命令,所以我无法理解我做错了什么。
您的建议我们将不胜感激。
发布于 2017-01-31 16:00:49
简短的回答
您需要在所有绘图调用前添加plt.前缀,如下所示
lines = plt.plot(x, 'linear', 'g:+', x, 'square','r-o')更长的答案
在Python中,不是“内置”的函数,即总是存在的,必须从模块中导入。在本例中,这行代码
from matplotlib import pyplot as plt等同于
import matplotlib.pyplot as plt和表示您正在以较短的名称plt将matplotlib的pyplot模块导入到名称空间中。plot(), scatter()和其他命令都在pyplot模块中。
如果您不想在每次绘图调用之前编写plt.,那么您可以这样做
from matplotlib.pyplot import *它会将所有函数(符号)导入到全局名称空间中,您现在可以使用原始行:
lines = plot(x, 'linear', 'g:+', x, 'square','r-o')编辑:plot()调用出现问题
您对plot()的调用是错误的,ValueError会这样告诉您。您正在尝试对有100个元素的x绘制字符串'linear' (6个元素)。因为它们不匹配,所以plot()会这样告诉您。我猜:linear和square应该是这样的表达式
linear = x
square = x**2https://stackoverflow.com/questions/41952424
复制相似问题