导入Matplotlib

时间:2017-01-31 07:59:08

标签: python matplotlib

原始问题

我是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

由于我只是重复教程中显示的命令,我无法理解我做错了什么。

您的建议将不胜感激。

1 个答案:

答案 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模块导入您的命名空间,名称为pltpyplot模块是plot(), scatter()和其他命令所在的位置。

如果你不希望在每次剧情电话会议之前写plt.,你可以改为

from matplotlib.pyplot import *

将所有函数(符号)导入全局命名空间,现在您可以使用原始行:

lines = plot(x, 'linear', 'g:+', x, 'square','r-o')

编辑:plot()电话

问题

您对plot()的来电是错误的,ValueError告诉您。 您正尝试将字符串'linear'(6个元素)绘制为具有100个元素的x。由于它们不匹配,plot()会告诉您。 我猜:linearsquare应该是

这样的表达式
linear = x
square = x**2