欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?matplotlib實(shí)戰(zhàn)之氣泡圖繪制

 更新時(shí)間:2023年08月27日 09:22:28   作者:databook  
氣泡圖是一種多變量的統(tǒng)計(jì)圖表,可以看作是散點(diǎn)圖的變形,這篇文章主要為大家介紹了如何使用Matplotlib繪制氣泡圖,需要的小伙伴可以參考下

氣泡圖是一種多變量的統(tǒng)計(jì)圖表,可以看作是散點(diǎn)圖的變形。

與散點(diǎn)圖不同的是,每一個(gè)氣泡都表示三個(gè)維度的數(shù)據(jù),除了像散點(diǎn)圖一樣有X,Y軸,氣泡的大小可以表示另一個(gè)維度的數(shù)據(jù)。

例如,x軸表示產(chǎn)品銷量,y軸表示產(chǎn)品利潤,氣泡大小代表產(chǎn)品市場份額百分比。

它可以幫助我們發(fā)現(xiàn)變量之間的模式、趨勢和異常值。

通過氣泡的大小和顏色,我們可以同時(shí)比較多個(gè)變量的值,并且可以快速識別出具有較大或較小數(shù)值的數(shù)據(jù)點(diǎn)。

1. 主要元素

氣泡圖通常用于展示和比較數(shù)據(jù)之間的關(guān)系和分布,可以展示三維(X,Y軸,氣泡大?。踔了木S數(shù)據(jù)(X,Y軸,氣泡大小,氣泡顏色)之間的關(guān)系。
它的主要元素包括:

  • 橫軸和縱軸:氣泡圖通常使用橫軸和縱軸來表示兩個(gè)變量的值。這些變量可以是數(shù)值型、分類型或時(shí)間型。
  • 氣泡大?。簹馀輬D通過氣泡的大小來表示第三個(gè)變量的值。通常,氣泡的大小與該變量的值成正比,較大的氣泡表示較大的數(shù)值。
  • 氣泡顏色:氣泡圖還可以使用顏色來表示第四個(gè)變量的值。不同的顏色可以用于區(qū)分不同的數(shù)據(jù)類別或者表示不同的數(shù)值范圍。

2. 適用的場景

氣泡圖適用的分析場景包括:

  • 多變量關(guān)系分析:氣通過橫軸、縱軸和氣泡大小,可以同時(shí)呈現(xiàn)三個(gè)變量的信息,幫助我們發(fā)現(xiàn)變量之間的模式、趨勢和相關(guān)性。
  • 數(shù)據(jù)聚類和分類:氣泡顏色可以用于區(qū)分不同的數(shù)據(jù)類別或者表示不同的數(shù)值范圍。這使得氣泡圖在數(shù)據(jù)聚類和分類分析中非常有用,可以幫助我們識別出不同群組或類別之間的差異和相似性。
  • 比較分析:用于比較不同類別或不同時(shí)間點(diǎn)的數(shù)據(jù)。通過氣泡的大小和顏色,我們可以直觀地比較多個(gè)變量的值,快速識別出具有較大或較小數(shù)值的數(shù)據(jù)點(diǎn),從而幫助我們理解數(shù)據(jù)的分布和變化情況。
  • 異常值檢測:幫助我們快速識別出具有異常數(shù)值的數(shù)據(jù)點(diǎn)。通過比較氣泡的大小和顏色,我們可以發(fā)現(xiàn)與其他數(shù)據(jù)點(diǎn)相比具有明顯不同數(shù)值的數(shù)據(jù),從而幫助我們識別和分析異常情況。

3. 不適用的場景

氣泡圖在以下情況可能不適用:

  • 大數(shù)據(jù)集:當(dāng)數(shù)據(jù)集非常龐大時(shí),氣泡圖可能不適合展示所有數(shù)據(jù)點(diǎn),因?yàn)檫^多的氣泡可能會導(dǎo)致圖表混亂不清。
  • 單變量分析:如果只需要分析單個(gè)變量的分布或趨勢,氣泡圖可能過于復(fù)雜,不是最佳選擇。
  • 離散數(shù)據(jù):如果數(shù)據(jù)是離散的,而不是連續(xù)的數(shù)值型數(shù)據(jù),氣泡圖可能無法有效地展示變量之間的關(guān)系。

4. 分析實(shí)戰(zhàn)

本次使用氣泡圖分析 2021年中歐之間的貿(mào)易數(shù)據(jù)情況。

氣泡圖可以分析三個(gè)維度的對比:

  • 進(jìn)口額:橫軸
  • 出口額:縱軸
  • 進(jìn)出口總額:氣泡大小

4.1. 數(shù)據(jù)來源

數(shù)據(jù)來源國家統(tǒng)計(jì)局公開的數(shù)據(jù),整理好的數(shù)據(jù)可從下面的地址下載:databook.top/nation/A06

用到的三個(gè)統(tǒng)計(jì)數(shù)據(jù)分別是:

  • 中國同歐洲各國(地區(qū))進(jìn)出口總額:A06050103.csv
  • 中國向歐洲各國(地區(qū))出口總額:A06050203.csv
  • 中國從歐洲各國(地區(qū))進(jìn)口總額:A06050303.csv
fp = "d:/share/data/A06050103.csv"
df_total = pd.read_csv(fp)
fp = "d:/share/data/A06050203.csv"
df_output = pd.read_csv(fp)
fp = "d:/share/data/A06050303.csv"
df_input = pd.read_csv(fp)

4.2. 數(shù)據(jù)清理

數(shù)據(jù)清理步驟主要包括:

  • 提取每個(gè)文件中2021年的數(shù)據(jù)
  • 去除中歐整體的交易額數(shù)據(jù),只保留和各個(gè)國家之間的貿(mào)易數(shù)據(jù)
  • 合并進(jìn)出口總額,進(jìn)口額,出口額到一個(gè)數(shù)據(jù)集中
  • 過濾多余字符,生成一個(gè)表示國家的數(shù)據(jù)列
#提取每個(gè)文件中2021年的數(shù)據(jù)
df = df_total[df_total["sj"] == 2021]
#去除中歐整體的交易額數(shù)據(jù),只保留和各個(gè)國家之間的貿(mào)易數(shù)據(jù)
data = df.loc[2:, ["zbCN", "value"]]
#重新映射列的名稱
data = data.rename(columns={"zbCN":"country", "value": "total"})
#過濾多余字符,生成一個(gè)表示國家的數(shù)據(jù)列
data["country"] = data["country"].str.replace("中國同", "", regex=False)
data["country"] = data["country"].str.replace("進(jìn)出口總額(萬美元)", "", regex=False)
df = df_input[df_input["sj"] == 2021]
#合并進(jìn)出口總額,進(jìn)口額,出口額到一個(gè)數(shù)據(jù)集中
data["input"] = df.loc[2:, ["value"]]
df = df_output[df_output["sj"] == 2021]
#合并進(jìn)出口總額,進(jìn)口額,出口額到一個(gè)數(shù)據(jù)集中
data["output"] = df.loc[2:, ["value"]]
data.head(5)

和歐洲的總體交易數(shù)據(jù)位于每個(gè)數(shù)據(jù)集的第一行,所用用 loc[2:, ...] 來過濾。

4.3. 分析結(jié)果可視化

with plt.style.context("seaborn-v0_8"):
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
    ax.scatter(
        data["input"] / 10000,
        data["output"] / 10000,
        data["total"] / 10000,
        c = np.random.rand(len(data)),
        cmap="Accent",
        alpha=0.6,
    )
    ax.set_xlabel("進(jìn)口額(億元)")
    ax.set_ylabel("出口額(億元)")
    x = np.linspace(0, 1400, 7)
    y = x
    ax.plot(x, y, '-')

從圖中可以看出:

橫軸是進(jìn)口額,縱軸是出口額,氣泡越大,進(jìn)出口總額越大。

中間的藍(lán)色線表示進(jìn)出口額度一樣,可以看出,大部分國家都在藍(lán)色線之上,說明我國和大部分歐洲的貿(mào)易都是順差。

到此這篇關(guān)于Python matplotlib實(shí)戰(zhàn)之氣泡圖繪制的文章就介紹到這了,更多相關(guān)matplotlib氣泡圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論