首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入Matplotlib

导入Matplotlib
EN

Stack Overflow用户
提问于 2017-01-31 15:59:08
回答 1查看 11.3K关注 0票数 1

原问题

我是Python的新手,我正在学习matplotlib。我正在遵循Mike Muller在matplotlib的官方用户手册中推荐的视频教程:'Plotting with matplotlib‘。讲师没有展示他如何导入matplotlib,而是立即使用诸如plot(x,linear,x,square)之类的命令继续操作,其中x是他定义的序列。

我试着逃走

代码语言:javascript
复制
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')

并得到了错误

代码语言:javascript
复制
NameError: name 'plot' is not defined

解决导入问题后更新问题

当我尝试复制所示的示例时,我得到了一个错误。代码如下:

代码语言:javascript
复制
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

因为我只是简单地重复教程中显示的命令,所以我无法理解我做错了什么。

您的建议我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-31 16:00:49

简短的回答

您需要在所有绘图调用前添加plt.前缀,如下所示

代码语言:javascript
复制
lines = plt.plot(x, 'linear', 'g:+', x, 'square','r-o')

更长的答案

在Python中,不是“内置”的函数,即总是存在的,必须从模块中导入。在本例中,这行代码

代码语言:javascript
复制
from matplotlib import pyplot as plt

等同于

代码语言:javascript
复制
import matplotlib.pyplot as plt

和表示您正在以较短的名称pltmatplotlibpyplot模块导入到名称空间中。plot(), scatter()和其他命令都在pyplot模块中。

如果您不想在每次绘图调用之前编写plt.,那么您可以这样做

代码语言:javascript
复制
from matplotlib.pyplot import *

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

代码语言:javascript
复制
lines = plot(x, 'linear', 'g:+', x, 'square','r-o')

编辑:plot()调用出现问题

您对plot()的调用是错误的,ValueError会这样告诉您。您正在尝试对有100个元素的x绘制字符串'linear' (6个元素)。因为它们不匹配,所以plot()会这样告诉您。我猜:linearsquare应该是这样的表达式

代码语言:javascript
复制
linear = x
square = x**2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41952424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档