【问题标题】:Python 2.7 time series non numeric valuesPython 2.7 时间序列非数值
【发布时间】:2016-07-08 04:21:29
【问题描述】:

我正在使用 Python 2.7,需要使用 matplotlib 库绘制时间序列。我的y 轴数据是数字,一切正常。

问题是我的x 轴数据不是数字,matplotlib 在这种情况下不配合。即使它不应该影响绘图的正确性,它也不会给我画一个时间序列,因为x 轴数据无论如何都是按给定的顺序排列的,它的顺序在逻辑上不会影响任何事情。

例如,假设x 数据为["i","like","python"]y 轴数据为[1,2,3]

我没有添加我的代码,因为我发现代码没问题,如果我将数据更改为所有数字数据,它就可以工作。

请解释我如何使用 matplotlib 来绘制时间序列,而不是让我将 x 值转换为数字内容。

我的 matplotlib 代码基于以下答案:How to plot Time Series using matplotlib PythonTime Series Plot Python

【问题讨论】:

    标签: python python-2.7 matplotlib time-series


    【解决方案1】:

    Matplotlib 需要以某种方式定位这些标签。请参见以下示例:

    import matplotlib.pyplot as plt
    
    x = ["i","like","python"] 
    y = [1,2,3]
    
    plt.plot(y,y)  # y,y because both are numeric (you could create an xt = [1,2,3]
    plt.xticks(y,x) # same here, the second argument are the labels.
    plt.show()
    

    ,结果如下:

    请注意我是如何将标签放在那里的,但不得不以某种方式说出它们应该在哪里。

    我还认为您应该在代码中加入一部分,以便其他人更容易提出建议。

    【讨论】:

    • 当你写 plt.plot(y,y) 你是因为 y 是 1,2,3?在任何其他情况下你都不会使用它?
    • 我这样做是为了方便。您可以使用 xt = [1,2,3] 但 y 已经存在。你只需要一种方式来说明这些标签需要在哪里。
    猜你喜欢
    • 2013-11-27
    • 2017-03-16
    • 2019-05-16
    • 2018-02-02
    • 2013-08-19
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    相关资源
    最近更新 更多