三、Matplotlib雙坐標(biāo)軸的實操案例

為了更好地理解雙坐標(biāo)軸的應(yīng)用,我們將通過一個實際案例來演示如何在Matplotlib中實現(xiàn)雙坐標(biāo)軸。

3.1 案例背景

假設(shè)我們有一組銷售數(shù)據(jù),其中包含每個月的銷售額和廣告投入。銷售額的單位是萬元,而廣告投入的單位是千元。我們希望在同一張圖中展示銷售額和廣告投入的趨勢,以便分析兩者之間的關(guān)系。

3.2 數(shù)據(jù)準(zhǔn)備

首先,我們需要準(zhǔn)備數(shù)據(jù)。假設(shè)我們有以下數(shù)據(jù):

import matplotlib.pyplot as plt
import numpy as np

# 月份
months = np.arange(1, 13)

# 銷售額(萬元)
sales = np.array([20, 22, 25, 27, 30, 32, 35, 37, 40, 42, 45, 50])

# 廣告投入(千元)
ad_cost = np.array([15, 18, 20, 22, 25, 28, 30, 32, 35, 38, 40, 45])

3.3 繪制雙坐標(biāo)軸圖

接下來,我們將使用Matplotlib繪制雙坐標(biāo)軸圖。具體步驟如下:

  1. 創(chuàng)建圖形和第一個Y軸。
  2. 使用twinx()方法創(chuàng)建第二個Y軸。
  3. 分別繪制銷售額和廣告投入的數(shù)據(jù)。
  4. 添加圖例、標(biāo)題等元素。
# 創(chuàng)建圖形和第一個Y軸
fig, ax1 = plt.subplots(figsize=(10, 6))

# 繪制銷售額數(shù)據(jù)
ax1.plot(months, sales, 'b-', label='銷售額 (萬元)')
ax1.set_xlabel('月份')
ax1.set_ylabel('銷售額 (萬元)', color='b')
ax1.tick_params(axis='y', labelcolor='b')

# 創(chuàng)建第二個Y軸
ax2 = ax1.twinx()

# 繪制廣告投入數(shù)據(jù)
ax2.plot(months, ad_cost, 'r-', label='廣告投入 (千元)')
ax2.set_ylabel('廣告投入 (千元)', color='r')
ax2.tick_params(axis='y', labelcolor='r')

# 添加圖例
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper left')

# 添加標(biāo)題
plt.title('銷售額與廣告投入趨勢分析')

# 顯示圖形
plt.show()

3.4 結(jié)果分析

通過上述代碼,我們成功繪制了一張雙坐標(biāo)軸圖。圖中左側(cè)的Y軸表示銷售額(萬元),右側(cè)的Y軸表示廣告投入(千元)。從圖中可以看出,銷售額和廣告投入都呈現(xiàn)出上升趨勢,且兩者的變化趨勢較為一致。這表明廣告投入的增加可能對銷售額的提升起到了積極作用。

四、雙坐標(biāo)軸的進(jìn)階應(yīng)用

4.1 多子圖雙坐標(biāo)軸

在某些情況下,我們可能需要在多個子圖中使用雙坐標(biāo)軸。Matplotlib提供了靈活的子圖布局功能,可以輕松實現(xiàn)這一需求。

# 創(chuàng)建2x2子圖布局
fig, axs = plt.subplots(2, 2, figsize=(12, 8))

# 在第一個子圖中繪制雙坐標(biāo)軸圖
ax1 = axs[0, 0]
ax1.plot(months, sales, 'b-', label='銷售額 (萬元)')
ax1.set_ylabel('銷售額 (萬元)', color='b')
ax1.tick_params(axis='y', labelcolor='b')

ax2 = ax1.twinx()
ax2.plot(months, ad_cost, 'r-', label='廣告投入 (千元)')
ax2.set_ylabel('廣告投入 (千元)', color='r')
ax2.tick_params(axis='y', labelcolor='r')

ax1.legend(loc='upper left')
ax2.legend(loc='upper right')

# 在其他子圖中繪制其他數(shù)據(jù)
# ...

# 顯示圖形
plt.tight_layout()
plt.show()

4.2 自定義雙坐標(biāo)軸樣式

Matplotlib允許用戶自定義坐標(biāo)軸的樣式,包括顏色、刻度、標(biāo)簽等。通過自定義樣式,可以使雙坐標(biāo)軸圖更加美觀和易讀。

# 創(chuàng)建圖形和第一個Y軸
fig, ax1 = plt.subplots(figsize=(10, 6))

# 繪制銷售額數(shù)據(jù)
ax1.plot(months, sales, 'b-', label='銷售額 (萬元)')
ax1.set_xlabel('月份')
ax1.set_ylabel('銷售額 (萬元)', color='b')
ax1.tick_params(axis='y', labelcolor='b')
ax1.grid(True, linestyle='--', alpha=0.6)

# 創(chuàng)建第二個Y軸
ax2 = ax1.twinx()

# 繪制廣告投入數(shù)據(jù)
ax2.plot(months, ad_cost, 'r-', label='廣告投入 (千元)')
ax2.set_ylabel('廣告投入 (千元)', color='r')
ax2.tick_params(axis='y', labelcolor='r')

# 添加圖例
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper left')

# 添加標(biāo)題
plt.title('銷售額與廣告投入趨勢分析')

# 顯示圖形
plt.show()

五、總結(jié)

本文詳細(xì)介紹了Matplotlib中雙坐標(biāo)軸的基本概念、實現(xiàn)原理以及實際應(yīng)用。通過實際案例,我們展示了如何在Matplotlib中繪制雙坐標(biāo)軸圖,并探討了多子圖雙坐標(biāo)軸和自定義樣式的進(jìn)階應(yīng)用。雙坐標(biāo)軸技術(shù)在處理不同量級或不同單位的數(shù)據(jù)時具有重要的應(yīng)用價值,能夠幫助我們更清晰地展示數(shù)據(jù)之間的關(guān)系。希望本文能夠幫助讀者更好地理解和應(yīng)用Matplotlib中的雙坐標(biāo)軸技術(shù)。

上一篇:

查看已安裝的 JPOM 版本:深入解析與實操指南

下一篇:

探索boto3 client:AWS服務(wù)交互的低級接口
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費