如何在 Matplotlib 中更改繪圖背景

2021-03-02 Python中文社區

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()函數將其顯示。

我們生成的圖形是沒什麼問題,但看起來有點普通。讓我們嘗試重新自定義它。本文中使用兩種不同的方法來自定義繪圖的背景。現在,讓我們繼續更改該繪圖的背景。我們可以使用兩種不同的方法來做到這一點。我們可以更改當前設置為white的底部顏色。或者,我們可以使用imshow()輸入圖片。首先讓我們更改底部的顏色。這可以通過set()函數,傳入face參數及其新值來完成,也可以通過專用的set_facecolor()函數來完成:
ax = plt.axes()
ax.set_facecolor("orange")
# OR
ax.set(facecolor = "orange")

plt.scatter(TMIN, PRCP)
plt.show()

這兩種方法均會產生相同的結果,因為它們都在後臺調用相同的函數。如果要設置圖形的背景並且需要使軸透明,可以在創建圖形時使用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()

現在,讓我們看看將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()

如果您想將圖像用作繪圖的背景,則可以使用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()

範圍參數按此順序接受的參數包括:horizontal_min,horizontal_max,vertical_min,vertical_max)。在這裡,我們讀取了圖像,將其裁剪並使用imshow()在軸上顯示。在本教程中,我們介紹了使用Python和Matplotlib更改繪圖背景的幾種方法。

點擊下方閱讀原文加入社區會員


相關焦點

  • 如何用matplotlib繪圖呢?
    matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • matplotlib繪圖邏輯(上)
    matplotlib繪圖邏輯(上)matplotlib是一個基於Python的繪圖庫,具有對2D的完全支持和對3D圖形的有限支持,在Python科學計算社區中廣泛使用。本文對matplotblib的基本繪圖邏輯進行了比較詳細的梳理。寫作過程中參考了很多資料,由於筆記是斷續的,有些可能忘記引用,在此表達感謝。
  • matplotlib繪圖的核心原理講解
    對比到matplotlib中,就相當於初始化了一張figure(畫布),我們畫的任何圖形,都是在這張figure(畫布)上操作的。接著,張三需要給figure(畫布)分配不同的區域,指定哪一塊兒究竟該畫什麼。對比到matplotlib中,就是需要指定axes(坐標系),每一個axes(坐標系)相當於一張畫布上的一塊區域。
  • 用 matplotlib 自定義添加 「哆啦A夢」背景圖
    matplotlib簡介matplotlib是Python數據分析「三劍客」中,用於進行繪圖可視化的庫。也是Python可視化庫種大家最早接觸的一個庫,基於這個庫,我們差不多可以完成我們工作、學習中想要展示的圖形。
  • Python 數據分析:Matplotlib 繪圖
    簡介Matplotlib 是 Python 提供的一個繪圖庫,通過該庫我們可以很容易的繪製出折線圖、直方圖、散點圖、餅圖等豐富的統計圖,安裝使用 pip install matplotlib 命令即可,Matplotlib 經常會與 NumPy 一起使用。
  • Python 繪圖,我只用 Matplotlib(二)
    而且我們也可以方便地將它作為繪圖控制項,嵌入GUI應用程式中。本文主要走進 Matplotlib 的世界,初步學會繪製圖形。在學習繪製之前,先來了解下 Matplotlib 基礎概念。用於數學運算的庫,它是在安裝 matplotlib 時候順帶安裝的。
  • 專題第19篇:Python繪圖神器之matplotlib
    我的施工之路今天,繼續施工專題第19篇:Python繪圖神器:matplotlib(上)使用版本本文使用的 matplotlib 版本: 3.1.3使用的 NumPyMatplotlib 構建的繪圖體系是嚴謹的,它提供基本的兩套繪圖API:基於 matplotlib.pyplot 模塊,優點:寫法簡潔,適用交互性強,如Jupyter Notebook,一邊寫一邊出圖的場景;缺點:不適宜在大項目中,構建複雜的GUI圖形場景。
  • 動態曲線圖(linechart)--Matplotlib繪製
    和 散點圖 的繪製,詳細過程如下:由於需要查某些指標隨時間的變化趨勢,可將數據處理成如下形式(部分):圖表中的 china、usa、japan 等變量可以結合自己的實際需求進行更改,而 time 列則是時間變化。
  • Python matplotlib繪圖示例 - 繪製三維圖形
    Python matplotlib模塊是擴展的MATLAB的一個繪圖工具庫。
  • 高效使用 Python 可視化工具 Matplotlib
    基本前提如果你除了本文之外沒有任何基礎,建議用以下幾個步驟學習如何使用matplotlib:學習基本的matplotlib術語,尤其是什麼是圖和坐標軸始終使用面向對象的接口,從一開始就養成使用它的習慣用基礎的pandas繪圖開始你的可視化學習用seaborn進行更複雜的統計可視化用matplotlib來定製
  • matplotlib繪圖的完善及美化
    matplotlib繪圖的完善及美化
  • Matplotlib繪圖|快速定義圖表樣式的小技巧
    Matpltlibrc file 設置圖表屬性Matplotlib 在繪圖過程中,每創建一個圖表,都要對該圖表內的樣式(例如 字體大小、顏色、解析度、橫縱坐標刻度、橫縱坐標標籤)設置一次,重複乏味,如下展示的是一個正弦函數曲線X =np.linspace(-np.pi,np.pi,256,endpoint =True)S = np.sin(X)plt.plot
  • python - matplotlib繪圖
    一、繪圖基礎import matplotlib.pyplot as pltimport numpy as npimport tensorflow as tfimport pandas as pd>'''Matplotlib中的pyplot子庫可用來快速繪製二維圖表figure 創建畫布plot 繪製圖形show 顯示繪圖figure(num,figsize,dpi,facecolor
  • 作圖神器Matplotlib文檔解讀
    在前幾天的詞雲圖的製作過程中,我們用到了matplotlib來繪圖。事實上,matplotlib是一個很強大的作圖工具,所以,今天通過幾個實例來介紹下matplotlib的用法。聲明:在寫這篇文章時,我也是matplotlib的小白,僅僅想通過這種方式掌握比Excel更靈活的繪圖方法,以下實例來源於matplotlib的官方文檔,本來想翻譯一下官方文檔的,但由於官方文檔2000多頁,自身能力有限,翻譯起來費時費力,而且很多內容與使用者無關,所以就以windows系統為例,摘取一些重點進行解讀與擴展,如有不對,煩請指出。
  • matplotlib如何實現圖形繪製在tkinter的Canvas中?
    matplotlib如何實現圖形繪製在tkinter的Canvas中?今天番茄加速就來分享一下。下面就是最重要的tkinter和matplotlib集成部分,matplotlib提供FigureCanvasTkAgg對象,只需三行代碼,實現圖形繪製在tkinter的Canvas中:canvas_l = FigureCanvasTkAgg(figure_l, frame_l)# 用draw代替canvas_l.draw()canvas_l.get_tk_widget
  • python matplotlib模塊
    導入模塊導入matplotlib的子模塊import matplotlib.pyplot as pltimport numpy as np2.解析Matplotlib 裡的常用類的包含關係為 Figure -> Axes -> (Line2D, Text, etc.)一個Figure對象可以包含多個子圖(Axes),在matplotlib中用Axes對象表示一個繪圖區域,可以理解為子圖。
  • Python 繪圖庫 Matplotlib 入門教程
    /Matplotlib是一個Python語言的2D繪圖庫,它支持各種平臺,並且功能強大,能夠輕易繪製出各種專業的圖像。關於如何安裝Matplotlib請參見這裡:Matplotlib Installing。
  • 「繪圖,讓科學生動起來」:Python-matplotlib繪圖(專題一)python環境搭建篇
    專題一:做個行動派,安裝python及相關軟體——搭建python-matplotlib繪圖環境
  • Matplotlib入門詳細教程
    那既然pyplot是核心繪圖模塊,為什麼不把其接口引入到頂層呢?那樣直接import matplotlib就行,而無需每次都import matplotlib.pyplot as plt了雖然pyplot是matplotlib下的子模塊,但二者的調用關係卻不是matplotlib調用pyplot,而是在pyplot中調用matplotlib,略顯本末倒置?
  • 一圖看懂箱線圖,順便帶你鞏固matplotlib繪圖流程!
    今天本文就通過下面這張圖簡單講一下箱線圖沒錯,這張圖也是用matplotlib一點一點的繪製出來的,所以順便鞏固一下matplotlib繪圖的綜合應用。箱線圖怎麼看?下面早起手把手教你如何繪製這樣一張圖,鞏固matplotlib繪圖知識!