【问题标题】:Pandas Time Series Plot: Secondary y-Axis Label , Set Lower LimitPandas 时间序列图:辅助 y 轴标签,设置下限
【发布时间】:2021-06-12 14:01:03
【问题描述】:

我想要一个包含 2 列的时间序列图 - 按照下面描述的方式可以正常工作。我尝试了很多方法来为辅助 y 轴引入标签,但没有成功。

df.plot(kind='line',
    x='measurement_date',
    y=['crack_total', "crack_inv_vel"],
    secondary_y=["crack_inv_vel"],
    xlabel="date",
    ylabel="crack width [m]",
    title="crack survey")

使用上面的代码生成的示例图:-

【问题讨论】:

    标签: python pandas axis-labels


    【解决方案1】:

    df.plot的返回值赋值给一个变量;它将是matplotlib.axes._subplots.AxesSubplot 类型。然后twinx 它可以访问辅助 y 轴。然后你可以调整标签等:

    ax = df.plot(kind="line",
                 x="measurement_date",
                 y=["crack_total", "crack_inv_vel"],
                 secondary_y=["crack_inv_vel"],
                 xlabel="date",
                 ylabel="crack width [m]",
                 title="crack survey")
    
    ax_secondary = ax.twinx()
    ax_secondary.set_ylabel("secondary y-label")
    

    【讨论】:

    • 非常感谢!适用于单个数据框。我现在面临的问题是我试图将它应用于划分为子集的数据帧 - 使用 groupby 完成。初始代码运行良好,一次性生成了所有子集的图 - 但不知道如何设置辅助 y 轴的 laben。使用建议的方法,我收到错误消息: AttributeError: 'Series' object has no attribute 'twinx' - 有什么想法吗?如果我使用另一种方法来生成子集,可能会更容易,例如将它们写在单个 df 或数组中 - 此处不详述。
    • @PhilippeNater 这有点不同,所以你可能想问另一个问题以及你提到的代码和错误。
    • 亲爱的 Mustafa,你是对的,有点不同的问题陈述。我的目标只是一件一件地完成整个事情。第一步解决。我将连同代码和 .csv 的 sn-p 一起设置另一个问题。
    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2020-11-22
    • 1970-01-01
    • 2015-03-21
    • 2016-11-20
    相关资源
    最近更新 更多