首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas中plot和plot()的区别

Pandas中plot和plot()的区别
EN

Stack Overflow用户
提问于 2020-08-14 12:53:27
回答 1查看 622关注 0票数 1

这似乎是一件非常幼稚的事情,但我只是想确保我的理解是否正确。

要作为快捷方式直接从pandas dataframe绘图,我的第一个选择是调用plot()方法并传入我想要绘制的绘图的xy以及kind。否则,我可以将数据帧作为pandas.plotting._core.PlotAccessor对象分配给plot,然后调用适当的方法进行绘图,如bar()box()等。

所以,从语法上讲,我有

代码语言:javascript
复制
df.plot(x=x, y=y, kind='something') # call method OR
df.plot.something(x=x, y=y) # assign object and then call method

如果我上面的声明是正确的,那么为什么我没有得到我想要的单变量图(hist,box等)?尽管它对于双变量来说工作得很好。

代码语言:javascript
复制
df = pd.DataFrame({'col1':[1,2,3,4], 'col2':[3,3,5,5], 'col3':[10,11,12,13]})
df.plot(x='col1', kind='hist') # or
df.plot.hist(x='col2')

给出了一个图表,如

我知道根据Pandas Documentation的说法,我应该通过切分col2来使用系列,但是xy的用途是什么呢

同样,对于像这样的双变量图,这也是预期的

代码语言:javascript
复制
df.plot.scatter(x='col1', y='col3')

我遗漏了什么?任何帮助都是非常感谢的。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-14 15:00:56

this resource中,.plot根据每一列绘制索引,.plot()允许您指定单独绘制哪些列或绘制其他列。

没有得到预期的单变量直方图的原因是,DataFrame方法pd.plot.hist()的参数x没有按照预期的方式使用。

为了得到结果,我假设您想要一个变量的直方图,您应该使用参数y (因为y表示DataFrame序列的每个值的计数)。

代码语言:javascript
复制
df.plot.hist(y='col2')

当您设置参数x='col2'时,发生的情况是pandas遍历DataFrame的col2,并绘制其他列中的值的直方图(基本上将col1col3视为y)。这就是为什么df.plot.hist(x='col2')会为您提供DataFrame的col1col3值的组合直方图。

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

https://stackoverflow.com/questions/63406754

复制
相关文章

相似问题

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