【发布时间】:2021-06-23 16:34:03
【问题描述】:
我想使用subplot 制作多图,这样一个或多个特定子图的背景颜色与其他子图不同,如下例所示:
请注意,我感兴趣的是设置子图外部补丁的背景颜色,而不是图内部的背景颜色(可以使用 facecolor='gray' 完成)。这是因为我想绘制密度图,并且想将其中一些与其他部分区分开来。
我发现了类似this 之类的问题,例如每行子图都有不同的背景颜色,但我无法修改代码以便可以将颜色应用于特定子图(例如 (1, 2)、(1,3)、(2,1)、(2,2)如上图)。
这是一个示例代码:
import numpy as np
import matplotlib.pyplot as plt
fig, subs = plt.subplots(3,3,figsize=(10,10))
images = []
for i in range(3):
for j in range(3):
data = np.random.rand(20,20)
images.append(subs[i, j].imshow(data))
subs[i, j].label_outer()
plt.show()
任何帮助将不胜感激。
【问题讨论】:
-
ax.set_facecolor("red") 轴对象的方法,更多详情请看这个链接-stackoverflow.com/questions/14088687/…
-
我的问题是,与这篇文章相比,我感兴趣的是改变子图周围框架的颜色,而不是子图内空间的背景。
ax.set_facecolor()只能更改子图的内部颜色,fig.patch.set_facecolor更改外部颜色但为全图,因此不能为每个子图单独设置。
标签: python matplotlib subplot