pandas - 将排序列绘制为增加整数索引

时间:2015-08-12 20:39:00

标签: python pandas

假设我有一个带数值的熊猫系列。将排序的系列与增加的整数索引进行绘制的最短方法是什么?

情节应该显示:

x轴:0,1,2,3,4,......

y轴:系列的排序值。

(请注意我不能在系列'索引上绘制它,因为索引不一定是增加索引。在我的情况下,它是我用于不同原因的一些id)

由于

3 个答案:

答案 0 :(得分:8)

这将首先对系列进行排序然后绘制,忽略系列的索引:

ts = pd.Series(np.random.randn(100), index=pd.date_range('1/1/2000', periods=100)) ts.sort_values().plot(use_index=False)

答案 1 :(得分:2)

快速简便:您可以添加一个增加整数的列,并将其用作x值:

# some dataframe df
df['int_index'] = range(len(df))

df.plot(x='int_index', y='sorted_values')

如果您不想保留索引,请稍后删除它:

df.drop('int_index', axis=1, inplace=True)

辅助功能:

Pandas plot功能不需要"外部"数据作为指数。您可以直接使用matplotlib绘制为tnknepp显示的内容,或者使用辅助函数保留Pandas绘图(和格式化):

def plot_sorted(series, **kwargs):
    df = pd.DataFrame({'data': series}).reset_index(drop=True)
    df.plot(**kwargs)

使用这样的包装器,您可以快速绘制任何Series并通过调用将用于调用plot方法的相应参数来自定义绘图。例子:

ts = pd.Series(np.random.randn(100), index=pd.date_range('1/1/2000', periods=100))
# default pandas plot (with integer indices)
plot_sorted(ts)

# scatter plot (using `data` for x and y)
plot_sorted(ts, x='data', y='data', kind="scatter")

Default plot Scatter plot

答案 2 :(得分:2)

一行:

{{1}}

这假设您的数据框名为df,并且您想绘制存储在“A”列中的数据。