Как построить график рассеяния и линейный график в качестве участка на одном графике? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть следующие коды:

Для точечного графика:

plt.scatter(x_1.values[y_ocsvm1 == 1, 2], scaled_array[y_ocsvm1 == 1, 0], c = 'red', label = 'cluster1')
plt.scatter(x_1.values[y_ocsvm1 == -1, 2], scaled_array[y_ocsvm1 == -1, 0], c = 'blue', label = 'cluster2')
plt.ticklabel_format(useOffset=False)
plt.yticks(np.arange(min(scaled_array[:,[0]]), max(scaled_array[:,[0]]), 0.05))
plt.legend()
plt.show()

Это дает мне: enter image description here

Для линейного участка:

plt.plot(x, y)

Это дает мне:

enter image description here

Я бы хотел построить оба этих графика как субплоты на одном и том же графике (Вертикально сложенные графики).

Я хотел бы знать, как это можно сделать

Спасибо

Edit:

Я пытался сделать:

fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1)
ax1.plot(x, y)
ax2.plot(plt.scatter(x_1.values[y_ocsvm1 == 1, 2], scaled_array[y_ocsvm1 == 1, 0], c = 'red', label = 'cluster1')
, plt.scatter(x_1.values[y_ocsvm1 == -1, 2], scaled_array[y_ocsvm1 == -1, 0], c = 'blue', label = 'cluster2'))

И это дает мне желаемый сюжет следующим образом: enter image description here

Но также отображается следующая ошибка:

TypeError: float() argument must be a string or a number, not 'PathCollection'

1 Ответ

1 голос
/ 29 апреля 2019

Попробуйте следующее

fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1)

ax1.plot(x, y)

ax2.scatter(x_1.values[y_ocsvm1 == 1, 2], scaled_array[y_ocsvm1 == 1, 0], 
            color='red', label='cluster1')
ax2.scatter(x_1.values[y_ocsvm1 == -1, 2], scaled_array[y_ocsvm1 == -1, 0], 
            color='blue', label='cluster2')

plt.legend() # To show the legend
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...