Я пытаюсь нанести несколько столбцов (10) одного фрейма данных на один блокпост с пандами и matplotlib.
Каждый столбец был создан путем объединения серии Pandas в один фрейм данных.
В конечном графике должно быть четыре прямоугольника из четырех кадров данных.
Почему четыре кадра данных? Я думал, что будет проще.
Я пытался:
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