[英]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.