You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在绘制Pandas Series时反转坐标轴?含时间序列轴交换方法

如何交换时间序列类型Series绘图的X轴与Y轴?

对于时间序列类型的pandas Series,默认绘图时会将时间索引作为X轴、Series数值作为Y轴。要交换X/Y轴,可通过修改Series结构或直接在plot()方法中指定参数两种方式实现,以下是具体操作:

原始代码与默认绘图效果

首先是生成时间序列Series并绘图的基础代码:

import pandas as pd
import numpy.random as npr

def rand_data(n=5):
    return npr.choice([1,5,6,8,9], size=n)

npr.seed(0)
n = 8
index = pd.date_range('2013/01/31 09:10:12', periods=n, freq='ME')
s = pd.Series(index=index, data=rand_data(n))
s.plot()

默认绘图中,X轴为时间索引,Y轴为随机生成的数值。


方法一:修改Series结构交换轴

利用Series默认以索引为X轴的特性,将原Series的数值作为新索引,原时间索引作为新数值,再调用plot()即可:

# 交换索引与数值,生成新的Series
s_swapped = pd.Series(s.index, index=s.values)
s_swapped.plot()

此时绘图的X轴为原Series的数值,Y轴为时间索引,实现轴的交换。


方法二:通过plot()方法参数指定轴

无需修改Series本身,直接在plot()中显式指定x和y参数。可以先将Series转为DataFrame(方便指定列)再绘图:

# 将Series转为DataFrame,原索引变为列"datetime",原数值变为列"value"
df = s.reset_index(name='value').rename(columns={'index': 'datetime'})
# 指定x为value,y为datetime
df.plot(x='value', y='datetime')

也可直接在Series的plot()方法中传入对应序列:

s.plot(x=s.values, y=s.index)

两种方式都能直接实现X/Y轴的交换。


内容的提问来源于stack exchange,提问作者mins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:49:59