gpt4 book ai didi

python - 字典中的两栏绘图

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:18 24 4
gpt4 key购买 nike

我对 python3 的经验不是很丰富,因为我仍在学习,所以如果我的要求非常明显,我提前道歉。所以我有两个文件(.xlsx 和 .csv),其中一些数据列在不同的 DataFrame 中。

exp=pd.read_excel('filepath/something.xlsx', keep_default_na=False)
sim=pd.read_csv('filepath/something.csv', keep_default_na=False)

看起来像这样:

print(exp.dataframe_from_exp1)

0 2.2
1 1.0
2 2.0
3 2.7
4 3.5
5 1.3
6 2.2
7 3.0
8 2.1
9 1.7
10 2.5
Name: dataframe_from_exp1, dtype: float64

print(sim[[dataframe_from_sim1]])
dataframe_from_sim1
0 2.1
1 1.3
2 2.4
3 2.9
4 2.4
5 2.8
6 2.8
7 3.6
8 2.2
9 2.7
10 2.5

然后我使用他们的名字将它们排列在字典中:

comparison = {}
comparison['dataframe_from_sim1'] = 'dataframe_from_exp1'
comparison['dataframe_from_sim2'] = 'dataframe_from_exp2'

等等。然后,我想要的是在双条图中绘制每个 dataframe_from_sim 及其相应的 dataframe_from_exp ,这样我就可以比较给定的 11 种情况中每个变量的值,并在 for 循环中执行此操作。像这样的事情:

N=11
x = np.arange(N)
width = 0.35
for key, value in comparison.items():
fig, ax = plt.subplots()
bar1=ax.bar(x, key, width, color='r')
bar2=ax.bar(x + width, value, width, color='b')
plt.show()

但是,当然,这是行不通的。因此,如果您能帮助我,我将非常感激!

最佳答案

如果您尝试并排查看这些值,则可以使用以下方法:

import matplotlib.pyplot as plt    
import pandas as pd

fig = plt.figure()

exp = pd.read_excel('filepath/something.xlsx', keep_default_na=False)
sim = pd.read_csv('filepath/something.csv', keep_default_na=False)

exp.plot.bar(color='red', ax=fig.gca(), position=0, width=0.3)
sim.plot.bar(color='blue', ax=fig.gca(), position=1, width=0.3)

plt.show()

给你:

side by side bar plots

这可以扩展到处理多对文件,如下所示:

import matplotlib.pyplot as plt    
import pandas as pd
import glob

for xlsx_filename in glob.glob('*.xlsx'):
name, ext = os.path.splitext(xlsx_filename)
csv_filename = '{}.csv'.format(name)

if os.path.exists(csv_filename):
exp = pd.read_csv(csv_filename, keep_default_na=False)
sim = pd.read_excel(xlsx_filename, keep_default_na=False)

fig = plt.figure(name)
exp.plot.bar(color='red', ax=fig.gca(), position=0, width=0.3)
sim.plot.bar(color='blue', ax=fig.gca(), position=1, width=0.3)
plt.title(name)

plt.show()

这会搜索 .xlsx.csv 文件名对。仅处理具有匹配对的文件。

关于python - 字典中的两栏绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47476179/

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