gpt4 book ai didi

python - 将图像添加到绘图 -matplotlib PYTHON

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:01 26 4
gpt4 key购买 nike

我正在尝试将 .png 图像插入到绘图的右侧,并按照此处提到的代码进行操作: Combine picture and plot with Python Matplotlib

这是我尝试过的:

import numpy as np
from matplotlib.colors import LinearSegmentedColormap
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.cbook as cbook
from matplotlib._png import read_png
from matplotlib.offsetbox import OffsetImage
cmap = mpl.cm.hot
norm = mpl.colors.Normalize(vmin=-1 * outlier, vmax=outlier)
cmap.set_over('green')
cmap.set_under('green')
cmap.set_bad('green')
plt.xlim(0,35)
plt.ylim(0,35)
fig, ax = plt.subplots()
ax.set_aspect('equal')
cb_ax=fig.add_axes([0.85, 0.1, 0.03, 0.8])
img = ax.imshow(np.ma.masked_values(data, outlier), cmap=cmap, norm=norm, interpolation='none',vmax=outlier)
cb = mpl.colorbar.ColorbarBase(cb_ax, cmap=cmap, norm=norm, extend='both')
##axim = plt.subplot2grid(shape, loc, rowspan=1)

## phlo tree
image_file = cbook.get_sample_data('mytree.png',asfileobj=False)
image = plt.imread(image_file)
phyl_ax=fig.add_axes([0.10,0.1, 0.03, 0.8])
phyl_ax.imshow(image,interpolation='nearest')

热图将位于左侧,树的图像将插入右侧。通过上面的代码,我得到的是......

Image not added properly:-----

Here is the image I am trying to add:----

右侧添加了一些内容,但显然它不是应该的样子。起初我以为我将 phyl_ax 的尺寸设置得太小,但是当我尝试增加它时,甚至之前的“东西”也没有被添加。

有人能指出我哪里出了问题吗?

最佳答案

您正在调用两个子图,默认情况下,它为您提供单个轴,并且还通过add_axes添加轴。您应该选择其中之一,例如

...
fig = plt.figure()
ht_ax = fig.add_axes([0.1, 0.1, 0.3, 0.8])
cb_ax = fig.add_axes([0.45, 0.3, 0.02, 0.4])
phyl_ax = fig.add_axes([0.6, 0.1, 0.3, 0.8])

...

--或--

...
fig, ax = plt.subplots(1,2)
fig.subplots_adjust(left=0.15)
ht_ax = ax[0]
phyl_ax = ax[1]
cb_ax=fig.add_axes([0.05, 0.3, 0.02, 0.4])

...

您可以使用subplots_adjustset_aspect来调整布局。您还可以使用colorbar.make_axes获得适当大小的颜色条轴。这里我也用了grid_spec让绘图达到我喜欢的尺寸比例

gs = gridspec.GridSpec(1, 2, width_ratios=[3, 2]) 
ht_ax = plt.subplot(gs[0])
phyl_ax = plt.subplot(gs[1])
cb_ax, kw = mpl.colorbar.make_axes(ht_ax, shrink=0.55)
...
cb = mpl.colorbar.ColorbarBase(ax=cb_ax, cmap=cmap, norm=norm, extend='both', **kw)

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

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