В настоящее время я пытаюсь построить множество вспомогательных участков в Matplotlib (Python 3.6, Matplotlib 2.0.0), используя GridSpec. Вот минимальный рабочий пример:
import matplotlib.pyplot as plt
from matplotlib.gridspec import *
# Color vector for scatter plot points
preds = np.random.randint(2, size=100000)
# Setup the scatter plots
fig = plt.figure(figsize=(8,8))
grid = GridSpec(9, 9)
# Create the scatter plots
for ii in np.arange(0, 9):
for jj in np.arange(0, 9):
if (ii > jj):
ax = fig.add_subplot(grid[ii, jj])
x = np.random.rand(100000)*2000
y = np.random.rand(100000)*2000
ax.scatter(x, y, c=preds)
Это результат без изменений:
Конечно, интервал между участками неудовлетворителен, поэтому я сделал то, что обычно делаю, и использовал tight_layout()
. Но, как видно на рисунке ниже, tight_layout()
сжимает ширину графиков недопустимо:
Вместо того, чтобы использовать tight_layout()
, я решил, что нужно просто отрегулировать подзаговоры вручную, используя subplots_adjust()
. Ниже приведена цифра с subplots_adjust(hspace=1.0, wspace=1.0)
.
Результат почти верный, и если немного подправить, пространство между подсюжетами будет идеальным. Однако субплощадки кажутся слишком маленькими, чтобы адекватно передавать информацию.
Есть ли лучший способ получить правильный интервал между вспомогательными участками, сохраняя при этом соотношение сторон и достаточно большой размер вспомогательных участков? Единственное возможное решение, которое я мог придумать, - это использовать subplots_adjust()
с большим figsize
, но это приводит к очень большому пространству между краями фигуры и вспомогательными участками.
Любые решения приветствуются.