定义一次绘图选项并将其调用为多个子图

时间:2014-06-03 13:30:22

标签: python matplotlib plot

我正在使用几个子图。在这些子图中,使用imshow绘制数据。我传递给imshow的选项对于几乎所有的子图都是相同的。但是,由于选项的长度,它们会污染我的代码。

我使用的选项包括:

  • extent
  • cmap
  • norm
  • origin
  • interpolation

为了更好地概述我的代码,我想定义一次选项并为每个子图调用它们。什么是pythonic方法呢?

1 个答案:

答案 0 :(得分:3)

您可以将选项存储在字典中,然后使用**kwargs operator在函数调用中将其解压缩,如下所示(示例使用plot而不是imshow,但这是相同的想法)

import matplotlib.pyplot as plt
import numpy as np

options = {'linewidth':2,
           'color':'red',
           'linestyle':'dashed'}

x = np.linspace(0,10,100)
y = x**2

fig, ax = plt.subplots()

ax.plot(x,y, **options)

plt.show()

上面我已将选项存储在options字典中,然后使用ax.plot(x,y, **options)在情节函数调用中解压缩它们。