Зацикливание столбцов фрейма данных и построение графиков отдельно в Python - PullRequest
3 голосов
/ 06 июля 2019

Ниже приведен мой фрагмент кода. Я хотел бы построить каждый столбец одновременно со временем на линейном графике. Каждый столбец на разных участках Но сюжет, кажется, продолжает накапливать старые значения в нижней части.

import os
import pandas as pd
import numpy as np
from matplotlib import pyplot
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()


import re
def makeLinePlot(df):
    file_name="File Name not passed to this method"
    print("Ploting")
    df2=df
    fig,ax=plt.subplots(figsize=(30,8))
    i=0
    numRos = df.columns.size
    for colName in df.columns:
        i=i+1
        print(file_name,colName)
        df2[colName]=df2[colName].astype(float)
        print(colName,df2[colName].shape)
        g=sns.lineplot(x=df2.index, y=df2[colName], ax=ax)
        colNameR = re.sub('\W+','', colName )
        g.get_figure().savefig(colNameR+".png")


range = pd.date_range('2015-01-01', '2015-01-02', freq='1min')
df = pd.DataFrame(index = range)

# Average speed in miles per hour
df['speed'] = np.random.randint(low=0, high=60, size=len(df.index))
# Distance in miles (speed * 0.5 hours)
df['distance'] = df['speed'] * 0.25 
# Cumulative distance travelled
df['cumulative_distance'] = df.distance.cumsum()
makeLinePlot(df)

enter image description here

1 Ответ

1 голос
/ 07 июля 2019

Я внес некоторые изменения в ваш код, и теперь кажется, что я получил то, что вы хотите. Используйте следующий код.

import os
import pandas as pd
import numpy as np
from matplotlib import pyplot
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()


import re
def makeLinePlot(df):
    df2=df
    i=0

    numRos = df.columns.size

    fig,ax =plt.subplots( nrows=1, ncols=numRos,figsize=(30,8))

    for index, colName in enumerate(df.columns):
        i=i+1
        df2[colName]=df2[colName].astype(float)
        print(colName,df2[colName].shape)
        g=sns.lineplot(x=df2.index, y=df2[colName], ax=ax[index])
        colNameR = re.sub('\W+','', colName )
        g.get_figure().savefig(colNameR+".png")


range = pd.date_range('2015-01-01', '2015-01-02', freq='1min')
df = pd.DataFrame(index = range)

# Average speed in miles per hour
df['speed'] = np.random.randint(low=0, high=60, size=len(df.index))
# Distance in miles (speed * 0.5 hours)
df['distance'] = df['speed'] * 0.25 
# Cumulative distance travelled
df['cumulative_distance'] = df.distance.cumsum()
makeLinePlot(df)

У меня есть это. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...