Я пытаюсь создать простую диаграмму рассеяния из кадра данных pandas, нанося столбец column1 против column2 и используя column3 (с логическими значениями) в качестве цвета и размера.Однако, несмотря на то, что массивы цветов и размеров соответствуют ожидаемым, они применяются к различным точкам на графике.
>>> colors = ['white' if not val else 'red' for val in df.column3.values]
>>> size = [5 if not val else 30 for val in df.column3.values]
>>> plt.scatter(df['column1'].values, df['column2'].values, c=colors, s=size)
>>> print zip(colors, size)
[('white', 5),
('white', 5),
('red', 30),
('red', 30),
('white', 5),
...]
![enter image description here](https://i.stack.imgur.com/2Z6Td.png)
Почему это происходит?
E: Чтобы уточнить, каждый элемент в массивах color
и size
правильно спарен:
>>> for pair in zip(colors, size):
... if (pair[0] == 'white' and pair[1] != 5) or (pair[0] == 'red' and pair[1] != 30):
... print pair
[]