繁体   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