我有2个数据框,包含相同的索引和相同的列名(10列 例如: 来自df1
A B C
1 0 4 8
2 5 6 9
3 2 5 1
来自df2:
A B C
1 9 4 5
2 1 4 2
3 5 5 1
我想在同一张图上绘制,df1的A列与df2的A列,df1的B列与df2的B列,依此类推。 我该如何用pandas和matplotlib做到这一点
答案 0 :(得分:1)
这是一种方法:
import pandas as pd
import matplotlib.pyplot as plt
d1 = {'A':[0,5,2],'B':[4,6,5],'C':[8,9,1]}
d2 = {'A':[9,1,5],'B':[4,4,5],'C':[5,2,1]}
df1 = pd.DataFrame(data=d1)
df2 = pd.DataFrame(data=d2)
df1_a = df1['A'].tolist()
df1_b = df1['B'].tolist()
df2_a = df2['A'].tolist()
df2_b = df2['B'].tolist()
plt.plot(df1_a, df1_b, 'r')
plt.plot(df2_a, df2_b, 'b')
plt.show()
答案 1 :(得分:0)
假设df1
和df2
是您的数据帧,则可以使用以下代码遍历所有列并为您保存图形。
import matplotlib.pyplot as plt
import pandas as pd
for column in df1.columns:
x = df1[column]
y = df2[column]
if len(x) != len(y):
x_ind = x.index
y_ind = y.index
common_ind = x_ind.intersection(y_ind)
x = x[common_ind]
y = y[common_ind]
plt.scatter(x,y)
plt.savefig("plot" +column+".png")
plt.clf()
希望这会有所帮助!