首页 > 解决方案 > 在 x 轴上翻转 matplotlib 图,包括值

问题描述

我正在尝试翻转 x 轴,它是列出日期,由于某种原因,它的最近日期接近原点,最早的日期在右边。我不确定为什么会这样。我尝试set(gca,'xdir','reverse','ydir','reverse')在下面的函数中包含,但它不起作用,我收到一个错误说 gca is not found。下面是我的情节代码。

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 轴上以升序排列,所以最早在左边,最近在右边。谢谢!

标签: pythonmatplotlib

解决方案


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

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

或者您可以在绘图时存储轴对象

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

推荐阅读