首页 > 解决方案 > 在 python 中使用 Plotly 绘制基于 Long 格式的图形线

问题描述

我的数据集如下所示

|CREDIT_ENTITY TENOR    SPREAD  SNAPSHOT_DATE|

|ABC              1Y    127.161 14/09/2017|

|ABC              3Y    150.161 14/09/2017|

|ABC              5Y    180.161 14/09/2017|

|ABC              7Y    111.161 14/09/2017|

|ABC              10Y   128.161 14/09/2017|

|ABC              1Y    123.161 15/09/2017|

|ABC              3Y    145.161 15/09/2017|

|ABC              5Y    196.161 15/09/2017|

|ABC              7Y    111.161 15/09/2017|

|ABC              10Y   134.161 15/09/2017|

|ABC              1Y    109.161 25/09/2017|

|ABC              3Y    190.161 25/09/2017|

|ABC              5Y    180.161 25/09/2017|

|ABC              7Y    127.161 25/09/2017|

|ABC              10Y   170.161 25/09/2017|

我想为这样的数据集绘制一个图表,每个音阶都有一条曲线。我使用以下命令。

import pandas as pd
import plotly.express as px

fig = px.line(Final_DF, x="SNAPSHOT_DATE", y="SPREAD", color="TENOR")
fig.show()

然而,在绘制图表时,我得到了每个日期的不同曲线,这真的很奇怪。

我想请问有人可以帮忙吗?谢谢

标签: pythongraphtime-seriesplotly

解决方案


我不得不为每个男高音将您的数据框重组为一个:

import matplotlib.pyplot as plt
import pandas as pd


tennors = [t for t in Final_DF['TENOR'].drop_duplicates()]
dfs = [Final_DF[Final_DF['TENOR'] == t] for t in tennors]

现在在一个图中绘制所有数据框(您可能需要在交互式窗口单元格中运行它):

fig, ax = plt.subplots()
for df in dfs:
    df.plot(x='SNAPSHOT_DATE', y='SPREAD', ax=ax, label=list(df['TENOR'])[0])

图像

对我很有用。

这个答案能解决你的问题吗?


推荐阅读