溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python在Matplotlib中繪制垂直線的方法

發布時間:2021-04-06 10:16:46 來源:億速云 閱讀:1451 作者:小新 欄目:開發技術

小編給大家分享一下python在Matplotlib中繪制垂直線的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創建圖

讓我們首先用一些隨機數據創建一個簡單的圖:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

plt.show()

在這里,我們使用 Numpy 生成了[0,1)范圍內的150個隨機數據點。

python在Matplotlib中繪制垂直線的方法

現在,由于我們已經設置了 seed ,因此我們可以根據需要多次復制此隨機圖像。例如,我們可以在20和100標記上繪制垂直線。

可以通過 PyPlot 的vlines()axvline()函數這兩種方法來繪制線。當然,您也可以在Axes對象上調用這些方法。

使用 PyPlot.vlines()在Matplotlib繪圖上繪制垂直線

讓我們從 vlines() 函數開始:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.vlines([20, 100], 0, 1, linestyles='dashed', colors='red')

plt.show()

vlines()函數接受一些參數:“即您想在其上繪制線條的標量或X值的一維數組。我們提供了[20,100],標記了兩個點,盡管您可以從0..n點開始。然后,yminymax參數:這些是線條的高度。我們將它們設置為0到1,因為這也是np.random.rand()調用的分布。然后,您可以設置接受典型Matplotlib樣式選項的樣式,例如線型或顏色。

運行此代碼的結果如下:

python在Matplotlib中繪制垂直線的方法

我們在X軸的20和100點處有兩條垂直虛線,用紅色虛線表示。

此函數允許我們在具體值中設置yminymax,而axvline()允許我們按百分比選擇高度,或者默認情況下,我們僅使其從底部繪制到頂部。

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.set_ylim(-10, 10)
ax.vlines([20, 100], -2, 2, linestyles='dashed', colors='red')

python在Matplotlib中繪制垂直線的方法

在這里,我們把這條線設置為比隨機數據本身的范圍長,但仍比Axes本身小得多。

使用 PyPlot.axvline()在Matplotlib繪圖上繪制垂直線

現在,讓我們看一下axvline()函數:

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.set_ylim(-10, 10)
ax.axvline(20, color='red')
ax.axvline(100, color='red')

plt.show()

它具有其他功能所沒有的一些限制,例如一次只能繪制在一個點上。如果要繪制多個點(例如20和100),則必須調用函數兩次。

它實際上并沒有像vlines()那樣讓我們指定線型,但是默認情況下,它不需要yminymax參數。如果省略后,它們將只是從軸的頂部到底部:

python在Matplotlib中繪制垂直線的方法

但是,您可以根據需要更改高度:這次您將以百分比為單位更改高度。這些百分比考慮了軸的頂部和底部,因此0%將位于底部,而100%將位于頂部。讓我們畫一條從50%到80%的線:

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.set_ylim(-10, 10)
ax.axvline(20, 0.8, 0.5, color='red')
ax.axvline(100, 0.8, 0.5, color='red')

結果如下:

python在Matplotlib中繪制垂直線的方法

以上是“python在Matplotlib中繪制垂直線的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女