一般來說,我們先用pandas
分析數據,然後用matplotlib
之類的可視化庫來顯示分析結果。
而pandas
庫中有一個強大的工具--plot
函數,可以使數據可視化變得簡單而高效。
1. plot 函數簡介
plot
函數是pandas
中用於數據可視化的一個重要工具,
通過plot
函數,可以輕鬆地將DataFrame
或Series
對象中的數據以圖形的形式展示出來。
plot
函數支持多種類型的圖形,包括折線圖、柱狀圖、散點圖、餅圖等,這些不同類型的圖形適用於不同的數據分析場景。
此外,plot
函數還支持通過參數設置來調整圖形的樣式,如顏色、標籤、圖例等,以滿足更加個性化的可視化需求。
plot
函數的參數名稱和含義了matplotlib
繪圖時的參數是類似的,
如果熟悉matplotlib
繪圖的話,上手更快。
2. 數據準備
下面的示例中使用的數據採集自A股2024年1月和2月的真實交易數據。
數據下載地址:https://databook.top/。
導入數據:
import pandas as pd
import matplotlib.pyplot as plt
fp = r'D:\data\2024\歷史行情數據-不復權-2024.csv'
df = pd.read_csv(fp)
df = df.loc[:, ["股票代碼", "日期", "開盤", "收盤", "最高", "最低", "成交量"]]
df
3. 使用示例
針對上面的交易數據,下面演示如何用plot
函數快速繪圖。
3.1. 折線圖
折線圖一般用於展示時間序列數據,可以提取某一支股票的數據並繪製出來。
# 提取870299這支股票
data = df.query("股票代碼==870299")
data.index = data["日期"]
# 繪製每天最高價和最低價的曲線
data.loc[:, ["最高", "最低"]].plot(kind="line", title="股票870299", rot=45)
plt.show()
代碼中有幾個注意點:
data.index = data["日期"]
:plot
函數將索引列作爲橫軸,所以這裏設置日期列爲索引(index
)kind
參數:設置圖形的類型,這裏設置line
,表示折線圖title
參數:設置圖形的標題rot
參數:調整刻度的角度,這裏將X軸的刻度旋轉了45度,防止日期之間的重疊
3.2. 柱狀圖
柱狀圖多用於比對數據,下面我們用pandas
挑選幾支股票,然後比對它們的開盤價和收盤價的平均值。
# 隨便挑選一些股票代碼
codes = [870299, 301138, 603825, 600579, 600640]
data = df.loc[:,["股票代碼", "開盤", "收盤"]].query("股票代碼==@codes")
# groupby之後,繪製各個股票開盤價和收盤價的平均值
data.groupby(by=["股票代碼"]).mean().plot(kind="bar")
plt.show()
代碼中的注意點:
kind
參數:設置圖形的類型,這裏設置bar
,表示柱狀圖groupby
之後,"股票代碼"變爲索引列,所以繪圖時作爲橫軸
如果要繪製橫向的柱狀圖,只要把kind
參數設置成barh
即可。
data.groupby(by=["股票代碼"]).mean().plot(kind="barh")
3.3. 餅圖
餅圖是另一種比較數據的方式,它可以比較數據之間的佔比,更好的看出各種數據的分佈情況。
下面也隨機挑選一些股票,用餅圖比較它們的成交量情況。
codes = [870299, 301138, 603825, 600579, 600640]
data = df.loc[:,["股票代碼", "成交量"]].query("股票代碼==@codes")
data.groupby(by=["股票代碼"]).sum()["成交量"].plot(kind="pie", autopct="%1.1f%%")
plt.show()
代碼中的注意點:
kind
參數:設置圖形的類型,這裏設置餅圖pie
,表示餅圖autopct
參數:各個區域所佔百分比的顯示方式
3.4. 其他...
除了上面常用的圖形,plot
函數還支持其他多種圖形,其kind
參數目前支持的圖形包括:
line
: 折線圖bar
: 柱狀圖barh
: 橫向柱狀圖hist
: 直方圖box
: 箱型圖kde
: 核密度估計圖area
: 面積圖pie
: 餅圖scatter
: 散點圖hexbin
: 六邊形箱圖
4. 總結
總的來說,plot
函數爲數據分析師提供了一個強大而靈活的數據可視化工具。
通過plot函數,我們可以快速地將數據轉化爲直觀的圖形,從而更好地理解數據的分佈、趨勢和關係。
這種直觀的理解有助於我們發現數據中的潛在模式,進而做出更加準確和有效的決策。
無論是初學者還是資深的數據分析師,都可以通過掌握plot
函數來提升自己的數據分析能力。