Python 在x轴上翻转matplotlib图形,包括值

Python 在x轴上翻转matplotlib图形,包括值,python,matplotlib,Python,Matplotlib,我试图翻转x轴,它列出了日期,出于某种原因,它的最新日期靠近原点,最早的日期更靠近右边。我不知道为什么会这样。我尝试在下面的函数中包含setgca、'xdir'、'reverse'、'ydir'、'reverse',但没有成功,我收到一个错误,说找不到gca。下面是我的绘图代码 def plot_similarities(similarities_list, dates, title, labels): assert len(similarities_list) == len(label

我试图翻转x轴,它列出了日期,出于某种原因,它的最新日期靠近原点,最早的日期更靠近右边。我不知道为什么会这样。我尝试在下面的函数中包含setgca、'xdir'、'reverse'、'ydir'、'reverse',但没有成功,我收到一个错误,说找不到gca。下面是我的绘图代码

def plot_similarities(similarities_list, dates, title, labels):
    assert len(similarities_list) == len(labels)

    plt.figure(1, figsize=(10, 7))
    for similarities, label in zip(similarities_list, labels):
        plt.title(title)
        plt.plot(dates, similarities, label=label)
        plt.legend()
        plt.xticks(rotation=90)
    plt.show()

file_dates = {
    ticker: [ten_k['file_date'] for ten_k in ten_ks]
    for ticker, ten_ks in only_10ks_by_ticker.items()}  

plot_similarities(
    [cosine_similarities['AMD'][sentiment] for sentiment in sentiments],
    file_dates['AMD'][1:],
    'Cosine Similarities for {} Sentiment'.format('AMD'),
    sentiments)
我希望时间值以升序排列在x轴上,最早的在左边,最近的在右边。
谢谢

您可以抓住当前轴,然后反转:

ax=plt.gca()
ax.invert_xaxis()
ax.invert_yaxis()
也可以在打印时存储轴对象

ax=plt.plot(.....)
ax.invert_xaxis()
ax.invert_yaxis()

谢谢你的回复!我会把这些线包括在功能图中吗?它没有做任何事情,所以我想我不确定这些行应该放在哪里,lolyup,它们应该放在函数中。如果它不起作用,你必须提供一个完整的工作示例:你的代码片段中只定义了_10ks_by_ticker,因此我无法运行它,并给了你一个一般性的答案。啊,好吧,是的,这是我创建的字典,但代码相当长。在我开始之前,我忘了问,你建议的3行代码,它们会在我定义的函数中的特定位置吗?最后我把它们放在for循环中,也许这就是问题所在。请您解释一下,您建议将这三行ax=plt.gca ax.invert_xaxis ax.invert_yaxis插入何处,谢谢!只需提供一个仅由_ticker生成的_10ks _,这样您就有了一个最小的示例,请参见,但是通常在绘制绘图后,ax.invert _xaxis会立即消失。因为它在一个循环中,所以它可能会以一种奇怪的方式覆盖轴?因此,您也可以在循环之前使用ax=plt.axes实例化一个轴,然后每次打印时,使用ax.plot而不是plt.plot,然后在循环之外使用ax.invert_xaxis。如果没有,那么其他事情正在发生,您需要提供一个完整的工作示例。谢谢:我会尝试一下,如果它不工作,可以提供一个工作示例。干杯