如何解决Pandas中的plot和plot之间的区别
这似乎是很幼稚的事情,但我只是想确保我的理解是正确的。
要直接从熊猫数据框中进行绘制,我的第一个选择是调用plot()
方法,并传入我的x
和y
和kind
我想做的情节。否则,我可以将数据框作为pandas.plotting._core.PlotAccessor
对象分配给plot
,然后调用诸如bar()
,box()
等的适当绘图方法。
所以,从语法上讲,我有
df.plot(x=x,y=y,kind='something') # call method OR
df.plot.something(x=x,y=y) # assign object and then call method
如果我的上述说法正确,那么为什么我没有得到单变量图(历史记录,方盒等)的预期结果?尽管它对于二元变量也非常适用。
df = pd.DataFrame({'col1':[1,2,3,4],'col2':[3,5,5],'col3':[10,11,12,13]})
df.plot(x='col1',kind='hist') # or
df.plot.hist(x='col2')
给出类似图
我了解到,根据Pandas Documentation,我应该通过对col2
进行切片来使用Series,但是x
和y
的目的是什么?
此外,这对于像双变量图这样的预期工作
df.plot.scatter(x='col1',y='col3')
我想念什么?任何帮助表示赞赏。预先感谢。
解决方法
在this resource中,.plot
针对每一列绘制索引,.plot()
允许您指定要单独绘制的列还是针对其他列的绘制。
未获得单变量直方图所期望的原因是因为未按预期方式使用DataFrame方法x
的参数pd.plot.hist()
。
要获得想要的结果,我假设您想要一个变量的直方图,则应使用参数y
(因为y表示DataFrame系列的每个值的计数)。
df.plot.hist(y='col2')
设置参数x='col2'
时,熊猫将遍历DataFrame的col2
,并在其他列中绘制值的直方图(基本上处理col1
和{{ 1}}作为col3
)。这就是为什么y
为您提供DataFrame的df.plot.hist(x='col2')
和col1
值的组合直方图的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。