Как нанести несколько наборов данных на свой столбец на одном точечном графике - PullRequest
1 голос
/ 29 марта 2019

У меня есть 5 массивов, каждый из которых содержит 30 значений.Я хочу построить каждый массив в отдельном столбце в одном точечном графике.Итак, я хочу закончить одним точечным графиком с 5 столбцами, каждый с 30 точками данных, нанесенными на график в каждом столбце.Я НЕ хочу, чтобы массивы перекрывались, что является проблемой, с которой я сейчас сталкиваюсь с моим кодом.

plt.scatter(y,Coh1mean40,label='1', c='r')
plt.scatter(y, Coh75mean40,label='75', c='b')
plt.scatter(y,Coh05mean40,label='50', c='y')
plt.scatter(y,Coh25mean40,label='25', c='g')
plt.scatter(y,Coh00mean40,label='0')
plt.legend()
plt.show()

этот код дает мне одну диаграмму рассеяния со всеми точками данных, но все они перекрываются, нетотдельные столбцы.

y - это просто список из 30 чисел, потому что функции plt.scatter нужны два аргумента.Coh1mean40, Coh75mean40 и т. Д.все массивы, содержащие [0,435, 0,56, 0,645 ...] 30 значений в каждом

1 Ответ

1 голос
/ 29 марта 2019

Необходимо указать уникальный y, чтобы каждый вызов для каждого массива попадал в разные «столбцы». Лучше было бы ПУТЬ лучше назвать его x, поскольку вы определяете значение x каждой точки с помощью первого аргумента.

x = np.ones(30)

plt.scatter(0 * x,Coh1mean40,label='1', c='r')
plt.scatter(1 * x, Coh75mean40,label='75', c='b')
plt.scatter(2 * x,Coh05mean40,label='50', c='y')
plt.scatter(3 * x,Coh25mean40,label='25', c='g')
plt.scatter(4 * x,Coh00mean40,label='0')
plt.legend()
plt.show()

Однако вы можете вместо этого заглянуть в Seaborn, а именно stripplot

...