gpt4 book ai didi

python - 在一个图中绘制来自多个 Pandas 数据框的数据

转载 作者:行者123 更新时间:2023-11-28 21:04:56 24 4
gpt4 key购买 nike

我有兴趣使用来自多个不同 pandas 数据帧的数据绘制时间序列。我知道如何绘制单个时间序列的数据,也知道如何绘制子图,但我如何设法从单个图中的多个不同数据帧中绘制出来?我的代码如下。基本上我正在做的是扫描 json 文件的文件夹并将该 json 文件解析为 Pandas ,以便我可以绘制。当我运行这段代码时,它只是从一只 Pandas 而不是创建的十只 Pandas 进行绘图。我知道创建了 10 个 pandas,因为我有一个打印语句来确保它们都是正确的。

import sys, re
import numpy as np
import smtplib
import matplotlib.pyplot as plt
from random import randint
import csv
import pylab as pl
import math
import pandas as pd
from pandas.tools.plotting import scatter_matrix
import argparse
import matplotlib.patches as mpatches
import os
import json



parser = argparse.ArgumentParser()
parser.add_argument('-file', '--f', help = 'folder where JSON files are stored')
if len(sys.argv) == 1:
parser.print_help()
sys.exit(1)
args = parser.parse_args()


dat = {}
i = 0

direc = args.f
directory = os.fsencode(direc)

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

for files in os.listdir(direc):
filename = os.fsdecode(files)
if filename.endswith(".json"):
path = '/Users/Katie/Desktop/Work/' + args.f + "/" +filename
with open(path, 'r') as data_file:
data = json.load(data_file)
for r in data["commits"]:
dat[i] = (r["author_name"], r["num_deletions"], r["num_insertions"], r["num_lines_changed"],
r["num_files_changed"], r["author_date"])
name = "df" + str(i).zfill(2)
i = i + 1
name = pd.DataFrame.from_dict(dat, orient='index').reset_index()
name.columns = ["index", "author_name", "num_deletions",
"num_insertions", "num_lines_changed",
"num_files_changed", "author_date"]
del name['index']
name['author_date'] = name['author_date'].astype(int)
name['author_date'] = pd.to_datetime(name['author_date'], unit='s')
ax1.plot(name['author_date'], name['num_lines_changed'], '*',c=np.random.rand(3,))
print(name)
continue

else:
continue
plt.xticks(rotation='35')
plt.title('Number of Lines Changed vs. Author Date')
plt.show()

最佳答案

其实很简单。不要让 Pandas 迷惑你。在它下面,每一列只是一个 numpy 数组。

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

df1 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

ax1.plot(df1['A'])
ax1.plot(df2['B'])

enter image description here

关于python - 在一个图中绘制来自多个 Pandas 数据框的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44729498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com