我有
fig, (((ax1, ax2), (ax3, ax4))) = plt.subplots(ncols=2, nrows=2,
sharex='col',
sharey='row',
figsize=(12, 12))
我想重复一幅图,在所有轴上都说P,就像这样:
P.plot(ax = [ax1, ax2, ax3, ax4], facecolor = "none",
edgecolor = "black")
,而不必为每个图重复该行。有办法吗?
答案 0 :(得分:3)
有些人更喜欢在Python中使用map
而不是for
。所以我想如果目的是要替换一些规范的循环,如
for ax in [ax1, ax2, ax3, ax4]:
geodf.plot(ax=ax)
你可以做
list(map(lambda ax: geodf.plot(ax=ax), [ax1, ax2, ax3, ax4]))
答案 1 :(得分:1)
这是使用列表推导方法执行此操作的一种方法,而不必显式编写四个单独的绘图命令。我将DataFrame用作p
是为了与您的问题保持一致。您可以尝试用df
变量替换p
。
import pandas as pd
import matplotlib.pyplot as plt
fig, (((ax1, ax2), (ax3, ax4))) = plt.subplots(ncols=2, nrows=2,
sharex='col',
sharey='row',
figsize=(8, 8))
df = pd.DataFrame({"x": [1, 2, 3, 4],
"y" : [1, 4, 9, 16]})
_ = [df.plot(x="x", y="y", ax=ax) for ax in [ax1, ax2, ax3, ax4]]
plt.show()