簡體   English   中英

matplotlib imshow - 使用任何向量作為軸

[英]matplotlib imshow — use any vector as axis

我想在plt.imshow()使用任何向量作為軸。

A = np.random.rand(4, 4)
x = np.array([1, 2, 3, 8])
y = np.array([-1, 0, 2, 3])

我想象這樣的事情:

plt.imshow(a, x_ax=x, y_ax=y)

我知道有一個extent參數可用,但遺憾的是它不允許非等間距矢量。

有人可以幫忙嗎? 提前致謝。

Imshow圖總是等間距。 問題是如果你想擁有
(a)具有不等間距標簽的等間距圖,或
(b)不平等的地塊,標有比例尺。

(a)等間隔地塊

import numpy as np
import matplotlib.pyplot as plt

a = np.random.rand(4, 4)
x = np.array([1, 2, 3, 8])
y = np.array([-1, 0, 2, 3])

plt.imshow(a)
plt.xticks(range(len(x)), x)
plt.yticks(range(len(y)), y)
plt.show()

在此輸入圖像描述

(b)不平等的情節

import numpy as np
import matplotlib.pyplot as plt

a = np.random.rand(3, 3)
x = np.array([1, 2, 3, 8])
y = np.array([-1, 0, 2, 3])
X,Y = np.meshgrid(x,y)

plt.pcolormesh(X,Y,a)

plt.xticks(x)
plt.yticks(y)
plt.show()

在此輸入圖像描述

請注意,在這種情況下,“向量”將指定網格的邊緣,因此它們僅允許3x3數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM