将Pandas数据帧的每一列成对地映射到一列

时间:2016-10-18 01:22:42

标签: python pandas plot

我有一个pandas数据框,其中一列是一组标签,我想在子图中绘制其他每一列。换句话说,我希望每个子图的y轴使用相同的列,称为'标签',我想要每个剩余列的子图,其中x-每列的数据轴。我希望以下代码片段可以实现这一点,但我不明白为什么这会产生一个荒谬的情节:

examples.plot(subplots=True, layout=(-1, 3), figsize=(20, 20), y='labels', sharey=False)

1 个答案:

答案 0 :(得分:3)

该代码的问题在于您没有指定x值。这似乎是荒谬的,因为它将labels列绘制为从0到行数的索引。据我所知,你不能直接在熊猫中做你想做的事。您可能想查看seaborn,它是另一个可视化库,它有一些不错的网格绘图助手。

以下是您的数据示例:

import pandas as pd
import seaborn as sns
import numpy as np

examples = pd.DataFrame(np.random.rand(10,4), columns=['a', 'b', 'c', 'labels'])
g = sns.PairGrid(examples, x_vars=['a', 'b', 'c'], y_vars='labels')    
g = g.map(plt.plot)

这会创建以下图表: enter image description here

显然,使用随机数据看起来并不好看,但希望您的数据看起来会更好。