Pandas DataFrame DataFrame.plot.bar() 函数
Minahil Noor
2023年1月30日
-
pandas.DataFrame.plot.bar()
语法 -
示例代码:
DataFrame.plot.bar()
-
示例代码:
DataFrame.plot.bar()
与多数据列的关系 -
示例代码:
DataFrame.plot.bar()
与subplots=True
创建子图 -
示例代码:
DataFrame.plot.bar()
来绘制单个数据列 -
示例代码:
DataFrame.plot.bar()
与指定的颜色
![Pandas DataFrame DataFrame.plot.bar() 函数](/img/Python-Pandas/feature-image---Pandas-DataFrame-DataFrame.plot.bar-Function.webp)
Python Pandas DataFrame.plot.bar()
函数沿着指定的轴线绘制一个条形图。它将图形按类别绘制。分类在 X
轴上给出,数值在 Y
轴上给出。
pandas.DataFrame.plot.bar()
语法
DataFrame.sample(x=None, y=None, **kwds)
参数
x |
这是绘制类别的轴。如果没有指定,则使用 DataFrame 的索引 |
y |
它代表的是针对类别绘制的数值。如果没有指定,那么它就会将 DataFrame 的所有数字列与类别进行对比 |
**kwds |
这些是额外的关键字参数,用于自定义绘制的图形。你可以参考这里 |
返回值
它返回一个 N 维的数组,如果 subplots=True
,则返回 N 维的数组,每列有 matplotlib.axes.Axes
。如果 subplots=True
,则返回 N 维数组,每列有是 matplotlib.axes.Axes
。
示例代码:DataFrame.plot.bar()
我们先用一个简单的 DataFrame
来理解这个函数。
import pandas as pd
dataframe = pd.DataFrame({'Value':[100, 200, 300]})
print(dataframe)
我们的 DataFrame
为,
Value
0 100
1 200
2 300
这个函数的所有参数都是可选的。如果我们在执行这个函数时没有传递任何参数,那么它将索引作为 X
轴,数字数据列作为 Y
轴。
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame({"Value": [100, 200, 300]})
axis = dataframe.plot.bar(rot=0)
print(axis)
plt.show()
输出:
AxesSubplot(0.125,0.125;0.775x0.755)
参数 rot
是一个附加的关键字参数。它改变了 X 轴上类别名称的旋转。
如果我们不设置 rot
,图中会出现下面的情况。
示例代码:DataFrame.plot.bar()
与多数据列的关系
现在,我们将把我们的 DataFrame
改成一个复杂的数据。
import pandas as pd
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
print(dataframe)
我们的 DataFrame
为,
Age Avg Age in Family
Olivia 23 70
John 17 65
Laura 40 80
Ben 38 55
Kevin 24 60
Robin 12 63
Elsa 45 90
使用 DataFrame.plot.bar()
函数绘制这个 DataFrame
。
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(rot=0)
print(axis)
plt.show()
输出:
AxesSubplot(0.125,0.125;0.775x0.755)
它能生成一个包含每个类别的两个条形数字数据的条形图。它有助于有效地分析数据。
示例代码:DataFrame.plot.bar()
与 subplots=True
创建子图
如果 subplots=True
,那么函数返回一个 N 维的数组,每列有 matplotlib.axes.Axes
。使用这个函数,我们可以将数据列分成不同的子图,而不是一个单一的图。
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axes = dataframe.plot.bar(rot=0, subplots=True)
print(axes)
plt.show()
输出:
[<matplotlib.axes._subplots.AxesSubplot object at 0x0000029A89B06DC8>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000029A89B4B2C8>]
示例代码:DataFrame.plot.bar()
来绘制单个数据列
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(y="Age", rot=0)
print(axis)
plt.show()
输出:
AxesSubplot(0.125,0.125;0.775x0.755)
我们还可以将任何数据列与其他列进行对比,而不是将索引作为类别进行绘制。
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(x="Age", rot=0)
print(axis)
plt.show()
输出:
AxesSubplot(0.125,0.125;0.775x0.755)
示例代码:DataFrame.plot.bar()
与指定的颜色
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(rot=0, color="m")
plt.show()
它为 DataFrame
中的所有列指定颜色为 m
。
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.DataFrame(
{
"Age": [23, 17, 40, 38, 24, 12, 45],
"Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
},
index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(rot=0, color=["r", "b"])
print(axis)
plt.show()
我们还可以通过给 color
参数提供一个颜色列表,为 DataFrame
中的不同列指定不同的颜色。
相关文章 - Pandas DataFrame
- Pandas concat 函数
- Pandas cut 函数
- Pandas DataFrame sort_index()函数
- Pandas DataFrame.idxmax()函数
- Pandas DataFrame.insert()函数
- Pandas DataFrame.resample()函数