如何在熊猫中将多列绘制到单个箱线图中

时间:2019-06-26 17:31:41

标签: python pandas dataframe matplotlib boxplot

我正在尝试使用Pandas和matplotlib将一个数据帧的多列(10)绘制到单个boxplot中。 通过将“熊猫系列”串联到一个数据框中来创建每一列。

最终图应具有来自四个数据框的四个箱形图。 为什么要使用四个数据框?我以为会更容易。

我尝试过:

r1TopDf.boxplot()

但是会产生10个箱型图。每列一个。 另外,我宁愿使用

matplotlib.pyplot.boxplot( ....)

因为这是我的最终目标,这使我可以在一个图形中添加多个“图形调用”。 可能也可以通过dataframe.boxplot()来实现,但是我不知道如何。

我的数据如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

r1TopDf = pd.DataFrame()

for row in vectors_toPlot[<condition>].itertuples():
    topRC1 = row.column
    topRC1Resampled = topRC1.resample(...)
    topRC1Rolling = topRC1Resampled.rolling(...)
    r1TopDf = pd.concat([r1TopDf, topRC1Rolling], axis=1)


    print(topRC1.dtypes)

    print(type(topRC1))

输出:

0    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
1    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
2    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
3    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
4    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
5    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
6    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
7    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
8    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
9    float64
dtype: object
<class 'pandas.core.frame.DataFrame'>
print(type(r1TopDf))
<class 'pandas.core.frame.DataFrame'>

print(r1TopDf.dtypes)
0    float64
1    float64
2    float64
3    float64
4    float64
5    float64
6    float64
7    float64
8    float64
9    float64
dtype: object

print(r1TopDf.head())
                         0          1          2          3          4  \
00:01:00.001121  7779200.0  7779200.0  7779200.0  7779200.0  7779200.0   
00:01:00.021121  7480000.0  7480000.0  7480000.0  7480000.0  7480000.0   
00:01:00.041121  7480000.0  7480000.0  7480000.0  7480000.0  7480000.0   
00:01:00.061121  7779200.0  7792800.0  7779200.0  7779200.0  7779200.0   
00:01:00.081121  7779200.0  7792800.0  7792800.0  7779200.0  7792800.0   

                         5          6          7          8          9  
00:01:00.001121  7779200.0  7779200.0  7779200.0  7779200.0  7779200.0  
00:01:00.021121  7480000.0  7480000.0  7480000.0  7480000.0  7480000.0  
00:01:00.041121  7480000.0  7480000.0  7480000.0  7480000.0  7480000.0  
00:01:00.061121  7779200.0  7779200.0  7779200.0  7779200.0  7792800.0  
00:01:00.081121  7792800.0  7779200.0  7792800.0  7792800.0  7792800.0 

使用我的首选方法plt可以得到:

plt.boxplot(r1TopDf)
TypeError: 'Series' object is not callable

0 个答案:

没有答案