设置子图的背景颜色

时间:2014-04-26 16:23:46

标签: python r matplotlib

假设我有一个由4个子图组成的图像,如下所示:

将matplotlib.pyplot导入为plt 导入numpy为np

# Simple data to display in various forms
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

# Four axes, returned as a 2-d array
f, axarr = plt.subplots(2, 2)
axarr[0, 0].plot(x, y)
axarr[0, 0].set_title('Axis [0,0]')
axarr[0, 1].scatter(x, y)
axarr[0, 1].set_title('Axis [0,1]')
axarr[1, 0].plot(x, y ** 2)
axarr[1, 0].set_title('Axis [1,0]')
axarr[1, 1].scatter(x, y ** 2)
axarr[1, 1].set_title('Axis [1,1]')
# Fine-tune figure; hide x ticks for top plots and y ticks for right plots
plt.setp([a.get_xticklabels() for a in axarr[0, :]], visible=False)
plt.setp([a.get_yticklabels() for a in axarr[:, 1]], visible=False)

plt.show()

返回:

enter image description here

我想在其中一个图中添加灰色背景,比如左下角,因为我喜欢R使图像看起来的方式(例如,请参阅here)。我还没有找到一个简单的方法matplotlib,我错过了什么?

2 个答案:

答案 0 :(得分:7)

您可以简单地axarr[1,0].set_axis_bgcolor('grey')手动更改任何特定轴的轴颜色。

matplotlib接受许多不同的颜色字符串(示例herehere)以及HTML字符串中的hex值(例如'#eeefff')。 Plot

答案 1 :(得分:4)

从2.0版开始,不推荐使用

Axes.set_axis_bgcolor()。立即使用set_facecolor()