Pandas DataFrame DataFrame.plot.bar() 函式

Minahil Noor 2023年1月30日
  1. pandas.DataFrame.plot.bar() 語法
  2. 示例程式碼:DataFrame.plot.bar()
  3. 示例程式碼:DataFrame.plot.bar() 與多資料列的關係
  4. 示例程式碼:DataFrame.plot.bar()subplots=True 建立子圖
  5. 示例程式碼:DataFrame.plot.bar() 來繪製單個資料列
  6. 示例程式碼:DataFrame.plot.bar() 與指定的顏色
Pandas DataFrame DataFrame.plot.bar() 函式

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)

Pandas DataFrame.plot.bar Basic 函式

引數 rot 是一個附加的關鍵字引數。它改變了 X 軸上類別名稱的旋轉。

如果我們不設定 rot,圖中會出現下面的情況。

Pandas DataFrame.plot.bar Basic - 不設定 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)

Pandas DataFrame.plot.bar,有多列

它能生成一個包含每個類別的兩個條形數字資料的條形圖。它有助於有效地分析資料。

示例程式碼: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>]

Pandas DataFrame.plot.bar 子圖

示例程式碼: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)

Pandas 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(x="Age", rot=0)
print(axis)
plt.show()

輸出:

AxesSubplot(0.125,0.125;0.775x0.755)

Pandas DataFrame.plot.bar - 使用一列作為 X 軸

示例程式碼: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()

Pandas DataFrame.plot.bar - 不同列的單色

它為 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()

Pandas DataFrame.plot.bar - 不同的列有不同的顏色

我們還可以通過給 color 引數提供一個顏色列表,為 DataFrame 中的不同列指定不同的顏色。

相關文章 - Pandas DataFrame

相關文章 - Pandas DataFrame Plot