【问题标题】:Plotting graphs lines based on Long format using Plotly in python在 python 中使用 Plotly 绘制基于 Long 格式的图形线
【发布时间】:2021-08-02 01:43:35
【问题描述】:

我的数据集如下所示

|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()

However on plotting the graph, I get a different curve for each date that is really weird.

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

【问题讨论】:

  • 您可以使用pandas.Dataframe 方法有效地绘制数据。如果你这样做Final_DF.plot(x='SNAPSHOT_DATE', y='SPREAD')(docs) 会发生什么?我不明白您希望如何为每个期限绘制图表,因为每一行仅包含一个日期(x 值)和一个价差值(y 值)。因此,如果您真的想要每个男高音的图表,也就是每一行,您必须添加一个示例。
  • 我不确定你的意思,我想要的是所有 5 个 Tennor 的图表。所以示例男高音 1Y 应该有一条曲线在日期(14,15 和 9 月 25 日)有一个点
  • @ConfusedLearner 我想要的是一个时间序列,每个男高音都有曲线(总共 5 个)
  • 我现在知道了,但是第一个男高音 5Y 不见了。您能否复制并粘贴到您的数据框Final_DF 中,以便我进行测试?
  • 我已经添加了数据,你现在可以试试吗? @ConfusedLearner。我没有添加完整的数据集,但想法是一样的

标签: python graph time-series plotly


【解决方案1】:

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

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])

非常适合我。

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

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    相关资源
    最近更新 更多