2つの異なるデータフレームから2つの列を1つのグラフにプロットしようとしています。1つにプロットするコードを見つけましたが、x軸は昇順である必要があります。この場合、それを行うことはできますか?
df1=pd.DataFrame({ 'ID': ['A1','A2','A6','A7','A9'], 'F1_S': [23,75,42,77,54] },
columns=['ID', 'F1_S'])
df2=pd.DataFrame({ 'ID': ['A3','A4','A5','A8'], 'F1_S': [66,43,56,86] },
columns=['ID', 'F1_S'])
x1 = list(df1['ID'])
y1= list(df1['F1_S'])
lists1 = sorted(zip(*[x, y1]))
x1, y1 = zip(*sorted(zip(x1, y1)))
x2 = list(df2['ID'])
y2= list(df2['F1_S'])
lists2 = sorted(zip(*[x2, y2]))
x2, y2 = zip(*sorted(zip(x2, y2)))
plt.plot (x1,y1)
plt.plot(x2,y2)
これが完全にあなたが望むものであるかどうかはわかりませんが、ここに行きます:
import pandas as pd
import matplotlib.pyplot as plt
df1 = pd.DataFrame({'ID': ['A1', 'A2', 'A6', 'A7', 'A9'],
'F1_S': [23, 75, 42, 77, 54]},
columns=['ID', 'F1_S'])
df2 = pd.DataFrame({'ID': ['A3', 'A4', 'A5', 'A8'],
'F1_S': [66, 43, 56, 86]},
columns=['ID', 'F1_S'])
df1.set_index('ID', inplace=True)
df1.index.name = None
df1.columns = ['F1_S_1']
df2.set_index('ID', inplace=True)
df2.index.name = None
df2.columns = ['F1_S_2']
df = pd.concat([df1, df2], sort=True).sort_index().interpolate(limit_area='inside')
ax = df.plot()
ax.set_xticklabels(['A0'] + df.index.tolist())
plt.show()
結果は次のとおりです。
df.plot()
軸のラベル付けに1つずつエラーがあるようです。正しく表示するには、偽の要素をxlabelリストにハックする必要がありました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加