我确信我在这里搞了一件非常简单的事情,但似乎无法弄清楚。我只是试图通过循环访问一个数据帧并重复调用ax.scatter
来将每组数据绘制为每组不同颜色的散点图。一个最小的例子是:matplotlib中的多个散点图中的意外颜色
import numpy as np; import pandas as pd; import matplotlib.pyplot as plt; import seaborn as sns
%matplotlib inline
df = pd.DataFrame({"Cat":list("AAABBBCCC"), "x":np.random.rand(9), "y":np.random.rand(9)})
fig, ax = plt.subplots()
for i,cat in enumerate(df.Cat.unique()):
print i, cat, sns.color_palette("husl",3)[i]
ax.scatter(df[df.Cat==cat].x.values, df[df.Cat==cat].y.values, marker="h",s=70,
label = cat, color=sns.color_palette("husl",3)[i])
ax.legend(loc=2)
我加入了print
声明为自己的理智,以确认我确实通过组循环,并选择不同的颜色。然而,输出如下:
(如果这是稍微很难看到:组A,B和C根据传说有三个非常相似的蓝调,但所有scatterpoints有不同,看上去无关的颜色,甚至在群组中都不相同)
这是怎么回事?
哇!很好自己搞清楚。 –