在一张图中绘制多个 pandas 数据框 [英] plot multiple pandas dataframes in one graph

查看:94
本文介绍了在一张图中绘制多个 pandas 数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了6个不同的数据框,以消除其原始数据框的异常值.现在,我试图在同一图形上绘制所有消除异常值的数据框.

I have created 6 different dataframes that eliminate the outliers of their own original data frames. Now, I'm trying to plot all of the dataframes that eliminate the outliers on the same graph.

这是我的代码,它消除了每个数据帧中的异常值:

This is my code that eliminates the outliers in each data frame:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("ggplot")

#---Original DataFrame
x = (g[0].time[:27236])
y = (g[0].data.f[:27236])
df = pd.DataFrame({'Time': x, 'Data': y})

#----Removes the outliers in a given DataFrame and plots a graph
newdf = df.copy()
newdf = df[~df.groupby('Data').transform( lambda x: abs(x-x.mean()) > 1.96*x.std()).values]
#newdf.plot('Time', 'Data')

#---Original DataFrame
x = (q[0].time[:47374])
y = (q[0].data.f[:47374])
df = pd.DataFrame({'Time': x, 'Data': y})

#----Removes the outliers in a given DataFrame and plots a graph
newdf = df.copy()
newdf2 = df[~df.groupby('Data').transform( lambda x: abs(x-x.mean()) > 1.96*x.std()).values]
#newdf2.plot('Time', 'Data')

#---Original DataFrame
x = (w[0].time[:25504])
y = (w[0].data.f[:25504])
df = pd.DataFrame({'Time': x, 'Data': y})

#----Removes the outliers in a given DataFrame and plots a graph
newdf = df.copy()
newdf3 = df[~df.groupby('Data').transform( lambda x: abs(x-x.mean()) > 1.96*x.std()).values]
#newdf3.plot('Time', 'Data')

#---Original DataFrame
x = (e[0].time[:47172])
y = (e[0].data.f[:47172])
df = pd.DataFrame({'Time': x, 'Data': y})

#----Removes the outliers in a given DataFrame and plots a graph
newdf = df.copy()
newdf4 = df[~df.groupby('Data').transform( lambda x: abs(x-x.mean()) > 1.96*x.std()).values]
#newdf4.plot('Time', 'Data')

#---Original DataFrame
x = (r[0].time[:21317])
y = (r[0].data.f[:21317])
df = pd.DataFrame({'Time': x, 'Data': y})

#----Removes the outliers in a given DataFrame and plots a graph
newdf = df.copy()
newdf5 = df[~df.groupby('Data').transform( lambda x: abs(x-x.mean()) > 1.96*x.std()).values]
#newdf5.plot('Time', 'Data')

#---Original DataFrame
x = (t[0].time[:47211])
y = (t[0].data.f[:47211])
df = pd.DataFrame({'Time': x, 'Data': y})

#----Removes the outliers in a given DataFrame and plots a graph
newdf = df.copy()
newdf6 = df[~df.groupby('Data').transform( lambda x: abs(x-x.mean()) > 1.96*x.std()).values]
#newdf6.plot('Time', 'Data')

如果我删除注释newdf.plot(),我将能够分别绘制所有图形,但是我希望它们全部集中在一个图形上.

If I remove the comment newdf.plot() I will be able to plot all of the graphs separately but I want them all on one graph.

是的,我已经阅读了 http://matplotlib.org/examples/pylab_examples /subplots_demo.html 但是该链接没有任何示例在一个图表中包含多个图表.

And yes, I've already read over http://matplotlib.org/examples/pylab_examples/subplots_demo.html but that link doesn't have any examples with multiple plots in one chart.

我还阅读了以下内容: http://pandas-docs. github.io/pandas-docs-travis/visualization.html 确实提供了一些很好的信息,但是在一个图中包含多个图的示例使用相同的数据框.我有6个单独的数据框. 我想到了解决我的问题的一种方法,就是将所有数据框都写入相同的excel文件,然后从excel中绘制它们,但这似乎过多了,我不需要将这些数据保存到excel文件中.

I have also read this: http://pandas-docs.github.io/pandas-docs-travis/visualization.html which has some really great information but the examples that have multiple plots in one graph use the same data frame. I have 6 separate dataframes. I've thought of one solution to my problem would be to write all of the dataframes to the same excel file then plot them from excel, but that seems excessive and I don't need this data to be saved to an excel file.

我的问题是这样的: 如何在同一张图中绘制多个熊猫数据框.

My question is this: How can I plot multiple pandas dataframes in the same graph.

在遵循Scott的建议后我的图表

My graph after following Scott's advice

该图应该多少看起来是什么

What the graph should more or less look like

推荐答案

我错过了什么吗? 通常,我只对多个数据帧执行此操作:

Am I missing something? Normally, I just do this for multiple dataframes:

fig = plt.figure()

for frame in [newdf, newdf2, newdf3, newdf4, newdf5]:
    plt.plot(frame['Time'], frame['Data'])

plt.xlim(0,18000)
plt.ylim(0,30)
plt.show()

这篇关于在一张图中绘制多个 pandas 数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆