簡體   English   中英

Matplotlib:y軸上的圖像網格不均

[英]Matplotlib: Uneven grid of images on y axis scale

我想使用matplotlib根據其y值(能量)以ay尺度不均勻地繪制一系列圖像(分子軌道)。

我知道可以使用子圖來完成圖像網格,但這僅限於均勻分布的圖像,這不是我想要的。 而且,我想要一個y比例尺來表示與每個圖像相關的值。

您可以使用放置在AnnotationBbox內的OffsetImage將圖像放置在您喜歡的任何位置。

import matplotlib.pyplot as plt
from matplotlib.offsetbox import (OffsetImage, AnnotationBbox)

def image(x, y, ax, fname, zoom=0.5):
    """Place image from file `fname` into axes `ax` at position `x,y`."""
    ar = plt.imread(fname)
    im = OffsetImage(ar, zoom=zoom)
    im.image.axes = ax

    ab = AnnotationBbox(im, (x,y), xycoords='data')
    ax.add_artist(ab)


path = "https://upload.wikimedia.org/wikipedia/commons/thumb/"
exts = ["1/15/Hydrogen_eigenstate_n1_l0_m0_wedgecut.png/30px-Hydrogen_eigenstate_n1_l0_m0_wedgecut.png",
        "c/c6/Hydrogen_eigenstate_n2_l1_m0.png/50px-Hydrogen_eigenstate_n2_l1_m0.png",
        "2/21/Hydrogen_eigenstate_n3_l1_m0.png/70px-Hydrogen_eigenstate_n3_l1_m0.png",
        "f/f5/Hydrogen_eigenstate_n3_l1_m-1.png/70px-Hydrogen_eigenstate_n3_l1_m-1.png",
        "6/6a/Hydrogen_eigenstate_n3_l2_m1.png/70px-Hydrogen_eigenstate_n3_l2_m1.png"]

fig, ax = plt.subplots()
ax.axis([-1,5,-1,5])
for i, p in enumerate(exts):
    image(i, i, ax, path+p)

plt.show()

在此處輸入圖片說明

暫無
暫無

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

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