построение нескольких фигур в питоне - PullRequest
0 голосов
/ 27 января 2019

Возможно, название вводит в заблуждение, или кто-то придет и скажет мне, что он дублирован. Однако после многих (многих) часов просмотра я ничего не нашел. Я хочу построить несколько диаграмм рассеяния и объединить их в один участок для некоторых nrows и ncols?

Предположим, что у нас есть следующее:

new_list=[]

for j in list(set(lala)):

df1 = df[df['Date'] == j]
df1.drop('Date', axis = 1, inplace = True)

df2 = df1.groupby('Z').mean()
df2.reset_index(inplace = True)

new_list.append(df2)

for j in range(0, len(new_list)):
plt.figure(figsize=(6, 6), dpi=80)
plt.scatter(new_list[j]['X'],new_list[j]['Y'])

и позвольте мне немного объяснить, что он делает; Я создаю список с именем new_list , который содержит фреймы данных, построенные в цикле for (вы можете игнорировать конструкцию, поскольку я запрашиваю глобальный подход). После этого я печатаю точечные диаграммы (общее количество элементов new_list ) для каждого фрейма данных в new_list .

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

Так, как я могу взять все эти диаграммы разброса и объединить их в подзаговор для некоторых nrows и ncols?

1 Ответ

0 голосов
/ 27 января 2019

Предполагая, что у вас есть 4 строки и 10 столбцов, вы можете сделать что-то вроде этого (только один из способов сделать это). Здесь flatten возвращает вам список из 40 осевых объектов (4 x 10), где порядок находится в ряду: сначала первый ряд, четыре столбца, затем второй ряд, четыре столбца и т. Д.

fig, axes = plt.subplots(nrows=4, ncols=10)

for i, ax in enumerate(axes.flatten()):
    ax.scatter(new_list[i]['X'],new_list[i]['Y'])

Если вы не хотите использовать enumerate, в качестве альтернативы вы также можете использовать следующее

fig, axes = plt.subplots(nrows=4, ncols=10)
ax = axes.flatten()

for j in range(0, len(new_list)):
    ax[j].scatter(new_list[j]['X'],new_list[j]['Y'])
...