gpt4 book ai didi

python - 将图像添加到 pyplot 中的 ylabel

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:25 27 4
gpt4 key购买 nike

我想将图像设置为我制作的绘图的 ylabel。

以下代码

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.cbook import get_sample_data

from matplotlib.offsetbox import (TextArea, DrawingArea, OffsetImage,
AnnotationBbox)

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot([1,2,3,4,5,6,7],[1,4,2,8,5,7,1])

arr = np.arange(100).reshape((10, 10))
im = OffsetImage(arr, zoom=2)
im.image.axes = ax
xy = (1, 5)

ab = AnnotationBbox(im, xy)

ax.add_artist(ab)

plt.show()

生成下图:

enter image description here

我希望该图片位于 y 轴刻度的左侧,而不是位于绘图上。

我尝试更改行 xy = (1, 5),但这只会使图像消失。

我还尝试编写 ax.set_ylabel(ab)ax.set_ylabel(im),尽管(可以预见)这些只是将对象的名称设置为y 轴标签。

最佳答案

您可能不希望根据数据坐标来定位 ylabel,因为一旦您绘制不同的数据或放大绘图,这就会更改 ylabel。

而是将其定位在轴坐标中。这些范围在两个轴方向上都从 0 到 1,这样 y 标签可能最好位于某个稍微负的 x 位置(轴之外),并且就 y 位置而言位于其中间。

AnnotationBbox(im, (-0.1, 0.5) , xycoords='axes fraction')

完整示例

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot([1,2,3,4,5,6,7],[1,4,2,8,5,7,1])

arr = np.arange(100).reshape((10, 10))
im = OffsetImage(arr, zoom=2)
im.image.axes = ax
xy = (-0.1,0.5 )

ab = AnnotationBbox(im, (-0.1, 0.5), xycoords='axes fraction')

ax.add_artist(ab)

plt.show()

enter image description here

关于python - 将图像添加到 pyplot 中的 ylabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com