簡體   English   中英

Plot 二維數組數據以特定像素為中心

[英]Plot 2D array data into figure centered at specific pixel

我有一個軸 object 的圖。 我想使用 ax.scatter 將一些東西分散到 plot 中,這沒問題。 最重要的是,我想將二維數組數據繪制到同一個圖中(例如使用 ax.imshow ...):

import numpy as np
from matplotlib import pyplot as plt

vidRes = np.array([[-700, 700], [-500,500]])
dim = np.array([vidRes[0,1] - vidRes[0,0],vidRes[1,1] - vidRes[1,0]])

with plt.style.context('dark_background'):
    fg = plt.figure()
    fg.set_size_inches((10, 10*dim[1]/dim[0]))
    ax = fg.add_subplot(111)
    ax.set_aspect('equal')
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    ax.set_xlim(vidRes[0,0], vidRes[0,1])
    ax.set_ylim(vidRes[1,0], vidRes[1,1])

random = np.random.random(size = (401, 401,),)
ax.imshow(random, cmap = 'hot')

這是輸出

二維數組有 401x401 個條目。 有沒有一種直接的方法可以移動 imshow object 以將其置於我的 1400x1000 像素圖中的給定像素上? 我是瞎了眼看不到嗎?

圖像被繪制到圖中,但它始終與左下角或左上角對齊(取決於 ax.imshow 的原點)到我的 plot 中心的 (0,0) 坐標,我無法移動它其他任何地方。

您可以使用extent參數。 從文檔:

范圍:標量(左、右、下、上),可選,默認值:無 左下角和右上角的數據坐標位置。 如果None ,圖像的位置使得像素中心落在從零開始的(行、列)索引上。

將您的imshow調用更改為以下行:

ax.imshow(random, cmap = 'hot', extent=[-200.5, 200.5, -200.5, 200.5])

產量:

在此處輸入圖像描述

暫無
暫無

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

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