Нанесите 8 различных пар (x, y) на диаграмму рассеяния с использованием подспотта matplolib - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть 8 различных пар (x, y), например (x1, y1), ..... (x8, y8), и я хочу построить график с 4 вспомогательными участками (все будут разбросаны), где первый вспомогательный участок показывает (x1, y1) и (x2, y2), второй подпункт показывает (x3, y3) и (x4, y4) и так далее. Я использовал следующий код, и у меня есть две проблемы с ним:

  1. он отображает все пары только в одном субплоте
  2. , когда я хочу добавить метку x или метку y, например в первый подзаговор, и я использую ax [0,0] .set_xlabel ("x1-x2"), он возвращает объект "PathCollection" не имеет атрибута "set_xlabel" "

Код:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2,figsize=(12,12))
ax[0,0] = plt.scatter(x1,y1,color='red', marker = ".")#,order=order)
ax[0,0] = plt.scatter(x2,y2,color='blue', marker = ".")#,order=order)
ax[0,1] = plt.scatter(x3,y3,color='red', marker = ".")#,order=order)
ax[0,1] = plt.scatter(x4,y4,color='blue', marker = ".")#,order=order)
ax[1,0] = plt.scatter(x5,y5,color='red', marker = ".")#,order=order)
ax[1,0] = plt.scatter(x6,y6,color='red', marker = ".")#,order=order)
ax[1,1] = plt.scatter(x7,y7,color='red', marker = ".")#,order=order)
ax[1,1] = plt.scatter(x8,y8,color='red', marker = ".")#,order=order)  

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 12 февраля 2020

Проблема заключается в том, что вы объявляли объект подзаголовка (fig с его подзаголовками, доступными через ax[i,j]), а затем перезаписывали переменную доступа ax[i,j], назначая ей обычный объект plt.scatter.

Я не могу объяснить, почему это заставило программу отобразить все пары в одном и том же подпрограмме ( чувствует, что должно работать), но, тем не менее, использование ax[i,j].scatter() должно решить проблему следующим образом:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2,figsize=(12,12))
ax[0,0].scatter(x1,y1,color='red', marker = ".")#,order=order)
ax[0,0].scatter(x2,y2,color='blue', marker = ".")#,order=order)
ax[0,1].scatter(x3,y3,color='red', marker = ".")#,order=order)
ax[0,1].scatter(x4,y4,color='blue', marker = ".")#,order=order)
ax[1,0].scatter(x5,y5,color='red', marker = ".")#,order=order)
ax[1,0].scatter(x6,y6,color='red', marker = ".")#,order=order)
ax[1,1].scatter(x7,y7,color='red', marker = ".")#,order=order)
ax[1,1].scatter(x8,y8,color='red', marker = ".")#,order=order)

(это также должно исправить ошибку атрибута set_xlabel)

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