gpt4 book ai didi

python - Matplotlib 和 pandas 中的条形图之间的差异

转载 作者:行者123 更新时间:2023-12-05 09:12:39 33 4
gpt4 key购买 nike

我觉得我在这里遗漏了一些荒谬的基本知识。

如果我尝试使用数据框的值创建条形图,调用数据框对象上的 .plot 与仅在 plt.plot< 中输入数据有什么区别 的括号?

例如

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])

对比

df.groupby('category').count().plot(kind='bar')?

有人可以告诉我有什么区别以及我应该在什么时候使用它们吗?我通过 plt.plot 得到了它,我正在调用 plt (Matplotlib) 库的 plot 方法,而当我执行 df.plot 时我在数据框上调用绘图?这到底是什么意思——数据框有一个绘图对象?

最佳答案

这些是不同的绘图方法。从根本上说,它们都生成一个 matplotlib 对象,可以通过其中一个 matplotlib 后端显示。

但是有一个重要的区别。 Pandas 条形图在本质上是 分类。这意味着,条形图被定位在后续的整数数字处,并且每个条形图根据数据帧的索引得到一个带有标签的刻度。例如:

import matplotlib.pyplot as plt
import pandas as pd

s = pd.Series([30,20,10,40], index=[1,4,5,9])
s.plot.bar()

plt.show()

enter image description here

在这里,有四个条,第一个在位置 0,带有系列索引的第一个标签,1。第二个在位置 1,带有标签 4 等等。

相比之下,ma​​tplotlib 条形图在本质上是数字。比较一下

import matplotlib.pyplot as plt
import pandas as pd

s = pd.Series([30,20,10,40], index=[1,4,5,9])
plt.bar(s.index, s.values)

plt.show()

enter image description here

这里的柱状图位于索引的数字位置;第一根柱子位于 1,第二根柱子位于 4 等等,轴标签与柱子的位置无关。

请注意,您可以通过将值转换为字符串来使用 matplotlib 获得分类条形图。

plt.bar(s.index.astype(str), s.values)

enter image description here

结果看起来与 pandas 图相似,除了一些小的调整,例如旋转的标签和条形宽度。如果您有兴趣调整一些复杂的属性,使用 matplotlib 条形图会更容易,因为它会直接返回包含所有条形图的条形容器。

bc = plt.bar()
for bar in bc:
bar.set_some_property(...)

关于python - Matplotlib 和 pandas 中的条形图之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57677559/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com