如何在matplotlib的不同子图中重复绘图?

2024-04-18 21:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有

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")

不必为每个绘图重复行。有办法吗?你知道吗


Tags: plotfigpltcolrowncolsax1ax3
2条回答

这是一种使用列表理解方法的方法,无需显式地编写四个单独的绘图命令。我将数据帧用作p,以与您的问题保持一致。您可以尝试用p变量替换df。你知道吗

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()

enter image description here

有些人喜欢在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]))

相关问题 更多 >