首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块是如何相互认识的

模块是如何相互认识的
EN

Stack Overflow用户
提问于 2016-10-08 12:15:48
回答 3查看 51关注 0票数 2

我可以用以下代码从CSV文件中绘制数据:

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
df.plot(x='Column1', y='Column3')
plt.show()

但我不明白一件事。plt.show()是如何知道df的?在某个地方,我会更有意义地看到这样一种表达:

代码语言:javascript
复制
plt = something(df)

我得提一下我只是在学Python。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-08 12:29:36

来自标绘上的熊猫文档

Series和DataFrame上的DataFrame方法只是一个简单的包装器:meth:plt.plot() <matplotlib.axes.Axes.plot>

因此,df.plot方法是对plt.plot的高级调用(使用包装器),然后调用plt.show只需:

显示所有图形并阻塞,直到图形被关闭。

就像用plt.plot绘制的所有数字一样。

因此,您不会像预期的那样看到plt = something(df),因为matpotlib.pyplot.plot在场景后面被df.plot调用。

票数 2
EN

Stack Overflow用户

发布于 2016-10-08 12:47:15

Matplotlib有两个“接口”:一个Matlab风格接口和一个面向对象接口

使用Matlab风格的界面进行绘图如下所示:

代码语言:javascript
复制
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.show()

plt.plot的调用隐式地创建要绘制的图形和轴。对plt.show的调用显示了所有的数字。

熊猫支持Matlab风格的界面,在调用df.plot(x='Column1', y='Column3')时隐式地为您创建一个图形和轴。

熊猫还可以使用更灵活的面向对象的界面,在这种情况下,代码如下所示:

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
fig, ax = plt.subplots()
df.plot(ax=ax, x='Column1', y='Column3')
plt.show()

在这里,轴ax是显式创建的,并传递给df.plot,然后df.plot调用遮罩下的ax.plot

面向对象的接口很有用的一种情况是,当您希望使用df.plot不止一次时,同时仍然使用相同的轴:

代码语言:javascript
复制
fig, ax = plt.subplots()
df.plot(ax=ax, x='Column1', y='Column3')
df2.plot(ax=ax, x='Column2', y='Column4')
plt.show()
票数 3
EN

Stack Overflow用户

发布于 2016-10-08 12:23:17

根据api.html#matplotlib.pyplot.showplt.show()本身不知道数据,您需要将数据作为参数传递。

根据使用http://pandas.pydata.org/pandas-docs/stable/visualization.html#basic-plotting-plot,你看到的应该是熊猫图书馆的地块。

希望这能解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39932230

复制
相关文章

相似问题

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