因此,我尝试将在 for 循环中创建的多个绘图保存到单个 pdf 文件中。我在 SO 上进行了搜索,并拼凑了一些似乎可以工作的代码,除了它不保存它创建的 pdf 中的数字,但其中没有任何内容。
这是重现它的代码:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
dftest = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 5)),
columns=['a', 'b', 'c', 'd', 'e'])
from matplotlib.backends.backend_pdf import PdfPages
with PdfPages('count.pdf') as pdf_pages:
df1 = dftest.select_dtypes([np.int, np.float, np.object])
for i, col in enumerate(df1.columns):
plt.figure(i)
countplot = sns.countplot(x=col, data=df1)
pdf_pages.savefig(countplot.fig)
Run Code Online (Sandbox Code Playgroud) 因此,我试图使用for循环为DatFrame中的所有连续变量绘制直方图,我已经设法使用countplot通过以下代码为分类变量完成此操作:
df1 = df.select_dtypes([np.object])
for i, col in enumerate(df1.columns):
plt.figure(i)
sns.countplot(x=col, data=df1)
Run Code Online (Sandbox Code Playgroud)
我在这里通过搜索找到了。
但是现在我想对distplot做同样的事情,所以我尝试将上面的代码修改为:
df1 = dftest.select_dtypes([np.int, np.float])
for i, col in enumerate(df1.columns):
plt.figure(i)
sns.distplot(df1)
Run Code Online (Sandbox Code Playgroud)
但这只是给我一个空想。关于我能做什么的任何想法?
编辑:例如,DataFrame:
dftest = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 5)),
columns=['a', 'b', 'c', 'd', 'e'])
Run Code Online (Sandbox Code Playgroud)