matplotlib-循环生成boxplots

2024-05-15 17:28:11 发布

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

我想在一个图形中,在一个轴上绘制几个方块图。但是,我用于boxplots的数据太大,无法一次读入内存。所以我用pandas read_csv()分块阅读。我想做的是在每次迭代中生成一些boxplot,并将迭代I中的新boxplot添加到与迭代I-1中的boxplot相同的图中,而不保留迭代I-1的数据。

我想强调的是,我不需要为已经存在的boxplot更新数据。更像是每次迭代都得到一个新的数据列,我想在现有的boxplot旁边显示该列的boxplot。

例如:假设我有

df = pd.DataFrame(np.random.rand(100,2))

假设我只能一个接一个地读这些列。如何将第二列的boxplot添加到第一列已经存在的boxplot中,以获得与ax.boxplot(df.values)相同的结果?


Tags: csv数据内存图形dataframepandasdfread
1条回答
网友
1楼 · 发布于 2024-05-15 17:28:11

boxplot方法有一个positions参数。使用它,您可以保证在一个循环中,每个箱线图(或多个箱线图)都设置在其位置。

下面是一些代码:

In [17]: x = pds.DataFrame(np.random.randn(10, 10))
In [18]: fig = plt.figure()
In [19]: ax = plt.subplot(111)
In [20]: for i in range(10):
    ...:     ax.boxplot(x.ix[:,i].values, positions = [i])
    ...:     
In [21]: ax.set_xlim(-0.5, 9.5)
In [22]: plt.show()

相关问题 更多 >