使用plot函數進行數據可視化

引言

在數據分析和數據建模中,數據的可視化是非常重要的環節,它能幫助我們更好地理解數據、找出數據的特點和規律、進行更準確的數據分析和決策。python中的matplotlib包中的plot函數是一個非常強大的數據可視化工具,它能夠幫助我們進行各種各樣的數據可視化操作,如散點圖、折線圖、柱狀圖、箱線圖等等。

正文

1、plot函數基礎

plot函數是matplotlib中最常用的函數之一,它可以幫助我們生成各種各樣的圖形。plot函數最基本的用法是:給定X軸和Y軸上的點的坐標,可以用plot函數繪製出這些點組成的圖像。

import matplotlib.pyplot as plt
import numpy as np

#生成數據
x = np.linspace(0,10,100)
y = np.sin(x)
#繪圖
plt.plot(x,y)
plt.show()

在這個例子中,我們使用了numpy來生成了100個等距的數據點,然後計算出了它們的正弦值。接著,我們使用plot函數把它們繪製成曲線,並使用show函數來顯示出來。執行代碼,就會得到一張正弦曲線的圖像。

2、散點圖和折線圖

plot函數不僅可以繪製折線圖,還可以繪製散點圖。相比於折線圖,散點圖更能夠突出數據點之間的離散程度。

下面是一個簡單的散點圖繪製代碼的例子:

import matplotlib.pyplot as plt
import numpy as np

#生成數據
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)
#繪圖
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)
plt.show()

在這個例子中,我們使用numpy生成了50個隨機的X軸坐標和Y軸坐標,並使用了兩個隨機變數來控制散點的顏色和大小。scatter函數用來繪製散點圖,其中c參數控制散點的顏色,s參數控制散點的大小,alpha參數控制散點的透明度。執行代碼,就會得到一張有50個隨機散點的圖像。

折線圖和散點圖可以同時繪製到同一幅圖上,只需要在繪製折線圖時,把plot函數替換為scatter函數即可。

import matplotlib.pyplot as plt
import numpy as np

#生成數據
x = np.linspace(0, 10, 100)
y = np.sin(x)
#繪圖
plt.plot(x, y, label='sin(x)')
plt.scatter(x[::10], y[::10], c='r', s=50, label='sampled points')
plt.legend()
plt.show()

在這個例子中,我們首先使用plot函數繪製出了sin(x)的曲線,然後使用scatter函數把曲線上每隔10個點的位置處的點繪製成紅色的散點。legend函數用來給圖中的曲線和散點添加圖例。執行代碼,就會得到一張既有折線圖又有散點圖的圖像。

3、多子圖布局

在數據分析中,有時需要對多個不同的子集或者數據集進行繪圖展示,而用一個圖形中繪製多個圖時,如果用傳統的subplot實現,稍微複雜點的圖形就會非常難以繪製。在這種情況下,我們可以使用subplot2grid來實現更加靈活的子圖布局。

import matplotlib.pyplot as plt
import numpy as np

#生成數據
x1 = np.linspace(0, 5, 100)
y1 = np.sin(x1)
x2 = np.linspace(0, 5, 100)
y2 = np.cos(x2)
#繪圖
fig = plt.figure(figsize=(8, 6))
ax1 = plt.subplot2grid((3, 3), (0, 0), rowspan=2, colspan=2)
ax1.plot(x1, y1, 'r-')
ax1.set_title('sin')
ax2 = plt.subplot2grid((3, 3), (0, 2), rowspan=2, colspan=1)
ax2.plot(x2, y2, 'g-')
ax2.set_title('cos')
ax3 = plt.subplot2grid((3, 3), (2, 0), rowspan=1, colspan=3)
ax3.plot(x1, y1, 'b-', x2, y2, 'y-')
ax3.set_title('sin and cos')
plt.tight_layout()
plt.show()

在這個例子中,我們首先生成了兩組X軸和Y軸上的點的坐標,分別對應正弦曲線和餘弦曲線。然後,我們使用subplot2grid函數來實現三幅子圖的布局。第一個參數代表整個圖形的布局,第二個參數代表當前子圖在整個圖形中的位置,第三個參數代表當前子圖的大小。最後,我們分別在三幅子圖中繪製了sin、cos以及sin和cos的曲線,並使用set_title函數來給每個子圖加上了標題。tight_layout函數用來調整子圖之間的間距。執行代碼,就會得到一張包含三幅子圖的圖像。

4、柱狀圖與堆疊圖

柱狀圖是對於不同類別之間的比較和量值之間的比較非常有用的一種數據可視化方式,matplotlib中的bar函數可以用來繪製柱狀圖。堆疊圖則是用來顯示多個變數在總和上的相對貢獻度,與柱狀圖相比,堆疊圖在視覺效果上會更充分地體現出各個變數之間的差異性。

下面我們分別通過兩個例子來演示如何繪製柱狀圖和堆疊圖:

import matplotlib.pyplot as plt
import numpy as np

#生成數據
data = [10, 20, 30, 40, 50]
labels = ['this', 'that', 'other', 'stuff', 'things']
#繪圖
plt.bar(np.arange(len(data)), data, align='center')
plt.xticks(np.arange(len(data)), labels)
plt.show()

在這個例子中,我們首先生成了一個包含5個元素的數據列表,然後使用bar函數把這些數據繪製成柱狀圖,並使用xticks函數來給每根柱子加上標籤。執行代碼,就會得到一張柱狀圖的圖像。

import matplotlib.pyplot as plt
import numpy as np

#生成數據
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N)
width = 0.35
#繪圖
plt.bar(ind, menMeans, width, label='Men')
plt.bar(ind, womenMeans, width, bottom=menMeans, label='Women')
plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(ind, ('Group1', 'Group2', 'Group3', 'Group4', 'Group5'))
plt.legend(loc='lower center')
plt.show()

在這個例子中,我們首先生成了男性和女性的得分列表,其中包含了5個分組,然後使用bar函數把這些數據繪製成堆疊圖。其中的bottom參數控制著女性柱子繪製時的起點,即女性柱子的高度都是基於男性柱子的高度的。執行代碼,就會得到一張堆疊圖的圖像。

5、箱線圖

箱線圖是一種常用的數據可視化工具,它可以用來展示一組數據的分布情況,包括中位數、四分位數、最大值和最小值等。Matplotlib中的boxplot函數可以用來繪製箱線圖。下面是一個繪製箱線圖的例子:

import matplotlib.pyplot as plt
import numpy as np

#生成數據
data = [np.random.normal(0, std, 100) for std in range(1, 4)]
#繪圖
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111)
bp = ax.boxplot(data)
ax.set_xticklabels(['x1', 'x2', 'x3'])
plt.show()

在這個例子中,我們首先使用numpy生成三組數據,並使用boxplot函數把它們繪製成一個箱線圖。add_subplot函數返回一個AxesSubplot對象,用來在Figure對象上添加一個子圖。xticklabels函數用來給X軸坐標加上對應的標籤。執行代碼,就會得到一張箱線圖的圖像。

總結

通過上面的幾個例子,我們學習了如何使用plot函數進行數據可視化,其中包括了折線圖、散點圖、子圖布局、柱狀圖、堆疊圖和箱線圖等幾種非常常用的可視化方式,特別是plot函數最常用的用法,希望可以對讀者有所幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308471.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-03 14:49
下一篇 2025-01-03 14:49

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論