Как построить бинарные значения с pyplot - PullRequest
1 голос
/ 26 сентября 2019

Я пытаюсь построить счет 100 студентам, которые сдали два экзамена.Значение X - это балл первого экзамена, а значение Y - это балл второго экзамена.У меня в третьем столбце данных есть 0 или 1. Если они поступили в университет с оценкой, которую они получили за два экзамена, это будет обозначено цифрой 1 в третьем столбце.Если они не были приняты, есть 0.

Я пытаюсь нанести точки, когда они не были приняты, и '+', когда они были приняты.

Как мне сделатьэто?

Это код, который у меня сейчас есть:

data.plot(kind='scatter', x='First Exam Score', y='Second Exam Score', figsize=(12,8))

Вот график, который у меня сейчас есть:

https://imgur.com/a/zOSzFdG

Я хочу, чтобы некоторые точки были точками, а другие - '+', в зависимости от значения, которое они имеют в третьем столбце

1 Ответ

4 голосов
/ 26 сентября 2019

Вы можете построить выбранные данные на одной оси:

data = pd.DataFrame({'First': np.random.randint(30,100, 100),
                     'Second': np.random.randint(30,100,100),
                     'Admitted': np.random.randint(0,2,100)})

fig, ax = plt.subplots()
markers = ['x','o']

for i in range(2):
    data[data['Admitted'].eq(i)].plot.scatter(x='First', 
                                              y='Second', 
                                              marker=markers[i],
                                              ax=ax)

Выход:

enter image description here

Или вы можетеиспользуйте seaborn scatterplot с style:

enter image description here

Но, на мой взгляд, лучший способ - это раскрасить код с помощью seaborn:

sns.scatterplot(data=data, x='First', y='Second', hue='Admitted', style='Admitted')

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...