1. 程式人生 > 程式設計 >如何在 Matplotlib 中更改繪圖背景的實現

如何在 Matplotlib 中更改繪圖背景的實現

介紹

Matplotlib是Python中使用最廣泛的資料視覺化庫之一。無論是簡單還是複雜的視覺化專案,它都是大多數人的首選庫。

在本教程中,我們將研究如何在Matplotlib中更改繪圖的背景。

匯入資料和庫

讓我們首先匯入所需的庫。顯然,我們將需要Matplotlib,並且將使用Pandas讀取資料:

import matplotlib.pyplot as plt
import pandas as pd

具體來說,我們將使用Seattle Weather Dataset(https://www.kaggle.com/rtatman/did-it-rain-in-seattle-19482017)這個資料集:

weather_data = pd.read_csv("seattleWeather.csv")
print(weather_data.head())
   DATE PRCP TMAX TMIN RAIN
0 1948-01-01 0.47 51 42 True
1 1948-01-02 0.59 45 36 True
2 1948-01-03 0.42 45 35 True
3 1948-01-04 0.31 45 34 True
4 1948-01-05 0.17 45 32 True

建立繪圖

現在,讓我們建立一個簡單的Matplotlib 散點圖,其中包含一些我們想要視覺化的變數:

PRCP = weather_data['PRCP']
TMAX = weather_data['TMAX']
TMIN = weather_data['TMIN']

現在,我們將在最低溫度和降水之間構建一個散點圖,並使用PyPlot中的show()函式將其顯示。

如何在 Matplotlib 中更改繪圖背景的實現

我們生成的圖形是沒什麼問題,但看起來有點普通。讓我們嘗試重新自定義它。本文中使用兩種不同的方法來自定義繪圖的背景。

在Matplotlib中更改繪圖背景

現在,讓我們繼續更改該繪圖的背景。我們可以使用兩種不同的方法來做到這一點。我們可以更改當前設定為white的底部顏色。或者,我們可以使用imshow()輸入圖片。

在Matplotlib中更改軸背景

首先讓我們更改底部的顏色。這可以通過set()函式,傳入face引數及其新值來完成,也可以通過專用的set_facecolor()函式來完成:

ax = plt.axes()
ax.set_facecolor("orange")
# OR
ax.set(facecolor = "orange")
 
plt.scatter(TMIN,PRCP)
plt.show()

如何在 Matplotlib 中更改繪圖背景的實現

這兩種方法均會產生相同的結果,因為它們都在後臺呼叫相同的函式。

在Matplotlib中更改繪圖背景

如果要設定圖形的背景並且需要使軸透明,可以在建立圖形時使用set_alpha()引數來完成。讓我們建立一個圖形和一個軸物件。當然,您也可以使用set()函式,並傳遞alpha屬性。

整個圖形的顏色將為藍色,我們首先將軸物件的alpha設定為1.0,這意味著完全不透明。我們將軸物件著色為橙色,從而在藍色圖中為我們提供了橙色背景:

fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.6)
 
ax = fig.add_subplot(111)
ax.patch.set_facecolor('orange')
ax.patch.set_alpha(1.0)
 
plt.scatter(TMIN,PRCP)
plt.show()

如何在 Matplotlib 中更改繪圖背景的實現

現在,讓我們看看將alpha調整為0.0時會發生什麼:

fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.6)
 
ax = fig.add_subplot(111)
ax.patch.set_facecolor('orange')
ax.patch.set_alpha(0.0)
 
plt.scatter(TMIN,PRCP)
plt.show()

如何在 Matplotlib 中更改繪圖背景的實現

注意繪圖本身的背景現在是透明的。

將影象新增到Matplotlib中的繪圖背景

如果您想將影象用作繪圖的背景,則可以使用PyPlot的imread()函式來完成。此函式將影象載入到Matplotlib中,該影象可與```imshow()``函式一起顯示。

為了在影象上方繪製,必須指定影象的範圍。預設情況下,Matplotlib使用影象的左上角作為影象的原點。我們可以給imshow()函式提供一個點列表,指定應該顯示影象的哪個區域。與子圖組合時,可以在影象上方插入另一個圖。

讓我們使用下雨的影象作為背景:

img = plt.imread("rain.jpg")
fig,ax = plt.subplots()
ax.imshow(img,extent=[-5,80,-5,30])
ax.scatter(TMIN,PRCP,color="#ebb734")
plt.show()

如何在 Matplotlib 中更改繪圖背景的實現

範圍引數按此順序接受的引數包括:horizontal_minhorizontal_maxvertical_minvertical_max)。在這裡,我們讀取了影象,將其裁剪並使用imshow()在軸上顯示。

小結

在本教程中,我們介紹了使用Python和Matplotlib更改繪圖背景的幾種方法。

到此這篇關於如何在 Matplotlib 中更改繪圖背景的文章就介紹到這了,更多相關如何在 Matplotlib 中更改繪圖背景內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!