散点图图例仅显示一个带有颜色的变量-Pandas Seaborn

时间:2017-08-18 21:00:37

标签: python pandas plot scatter-plot

我正在尝试使用scatter包在pandas中绘制seaborn图。我想让我的两个变量都显示在图例中,但我只得到一个。以下是我的所作所为:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns 

df = pd.DataFrame(np.random.randn(100, 6), columns=['a', 'b', 'c', 'd', 'e', 'f'])

我这样画了,

plt.scatter(df['a'],df['b'], color = ['red', 'blue'])
plt.legend(loc = 'best')
plt.show()

我得到这样的形象, enter image description here

如您所见,我没有看到a列/对象为蓝色。我在这里犯了什么错误?我搜索了这个,没有运气。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

<强>更新

plt.scatter(df.index, df.a, color='red')
plt.scatter(df.index, df.b, color='blue')
plt.legend(loc = 'best')

结果:

enter image description here

我觉得你很困惑。

演示:

想象一下,你的DF只有三行:

In [53]: df = pd.DataFrame({'x':[1,2,3], 'y':[5,6,7]})

In [55]: df
Out[55]:
   x  y
0  1  5
1  2  6
2  3  7

您正在尝试绘制以下三个点 - 您期望什么样的传奇?

In [54]: plt.scatter(df.x, df.y, color=['red','blue'])
Out[54]: <matplotlib.collections.PathCollection at 0x149f9f28>

In [56]: plt.legend(loc = 'best')
Out[56]: <matplotlib.legend.Legend at 0x1353ca20>

enter image description here