我创建了一堆地块,并希望根据它们的特征对其中的一些进行子集化。如何遍历命名空间并列出其中的一些或全部?甚至可能使用列表推导对其中一些进行操作?我知道这可以通过数据帧轻松完成,例如使用迭代器迭代不同数据帧的问题的一些答案
绘图的一个实际示例可能是关闭一些绘图,例如在使用子绘图时如何在 jupyter 中停止绘图打印两次?为了防止重复的子图设置,您必须运行plt.close(g.fig)where是许多图之一。g
设置:
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [12, 8]
df = sns.load_dataset("exercise")
f, axes = plt.subplots(2, 2)
g=sns.catplot(x="time", y="pulse", hue="kind", data=df, ax=axes[0, 0])
h=sns.catplot(x="time", y="pulse", hue="kind", data=df, ax=axes[0, 1])
i=sns.catplot(x="time", y="pulse", hue="kind", data=df, ax=axes[1, 0])
j=sns.catplot(x="time", y="pulse", hue="kind", data=df, ax=axes[1, 1])
在此示例中,如何在不显式命名每个绘图的情况下循环 i for[g, h, i, j]并运行?plt.close(i.fig)
我试过的:
vars()除其他外,跑步将回归'g', 'h', 'i', j。跑步vars()['g']
会给我<seaborn.axisgrid.FacetGrid at 0x1c1bc940>。所以我认为一种选择是在 [elem for elem in vars() if elem in 'seaborn.axisgrid.FacetGrid']不使用特定名称的情况下运行以访问每个地块。但这会回归,['g', 'i', 't', 's', 'ax']虽然跑步确实会回归。hjvars()['h']<seaborn.axisgrid.FacetGrid at 0x1bfa74a8>
在isseaborn.axisgrid.FacetGrid的输出中似乎没有任何痕迹。和的输出是长浮点数组。vars()['ax']<matplotlib.axes._subplots.AxesSubplot at 0x1c1bce10>vars()['t']vars()['t']
我想我可能以完全错误的方式处理这件事。任何其他建议都会很棒!
炎炎设计
相关分类