Уменьшить горизонтальные отступы - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь сгенерировать график с несколькими осями, каждая из которых имеет свою собственную цветную полосу (код ниже).Если я использую построение цветовой шкалы по умолчанию, я получаю слишком большое горизонтальное расстояние между графиком и цветовой шкалой:

enter image description here

Если я пытаюсь использовать make_axes_locatable()метод я получаю этот ужасный результат:

enter image description here

Что происходит и как я могу это исправить?


import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
from mpl_toolkits.axes_grid1 import make_axes_locatable

# Random data to plot
data = np.random.uniform(0., 1., (2, 100))
z = np.random.uniform(0., 10., 100)

# Define figure
fig = plt.figure(figsize=(30, 30))
gs = gridspec.GridSpec(12, 12)

for i in range(2):
    ax = plt.subplot(gs[2 * i:2 + (2 * i), 0:8])

    SC = plt.scatter(*data, c=z)

    # Colorbar 1
    cbar = plt.colorbar()

    # Colorbar 2
    # the_divider = make_axes_locatable(ax)
    # color_axis = the_divider.append_axes("right", size="1%", pad=0.)
    # cbar = plt.colorbar(SC, cax=color_axis)

    cbar.set_label("test", fontsize=15, labelpad=10)

fig.tight_layout()
plt.savefig('test.png', dpi=300, bbox_inches='tight')

1 Ответ

0 голосов
/ 11 октября 2018

Используйте аргумент pad colorbar, чтобы установить отступ между осями и цветовой шкалой.pad дается в единицах доли размера оригинальных осей для использования в качестве пробела.Здесь, например, pad=0.01 может иметь смысл.

import numpy as np
from matplotlib import pyplot as plt

# Random data to plot
data = np.random.uniform(0., 1., (2, 100))
z = np.random.uniform(0., 10., 100)

# Define figure
fig, axes = plt.subplots(nrows=2, figsize=(30, 30))

for i, ax in enumerate(axes.flat):
    sc = ax.scatter(*data, c=z)
    cbar = fig.colorbar(sc, ax=ax, pad=0.01)
    cbar.set_label("test", fontsize=15, labelpad=10)

fig.tight_layout()
plt.savefig('test.png', dpi=300, bbox_inches='tight')

enter image description here

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