Интервал между множеством субплотов Matplotlib согласно требованию - PullRequest
0 голосов
/ 13 ноября 2018

Очень простой вопрос, касающийся расстояния между подсюжетами matplotlib, несмотря на многократные итерации для plt.tight_layout или plt.subplots_adjust. Я до сих пор не могу вывести нужное пространство между участками

Ниже приведен пример кода Python

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline


dict1 = {'importance': {'var1': 67.18,'var2': 50.33,'var3': 29.33,
   'var4': 27.17, 'var5': 24.880}}

dict2 = {'importance': {'var3': 50.18,'var1': 30.33,'var2': 29.33,
  'var4': 24.17, 'var5': 7.880}}


df1 = pd.DataFrame.from_dict(dict1)
df2 = pd.DataFrame.from_dict(dict2)


fig, (ax1, ax2) = plt.subplots(1,2)
fig = plt.figure(figsize=(60,60))
fig.subplots_adjust(wspace=10)
df1.plot(kind = 'barh', ax = ax1)
df2.plot(kind = 'barh', ax = ax2)

Таким образом, график равен enter image description here

что, конечно, не я ищу, я ищу широко распространенные сюжеты. Просьба помочь

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Что вы можете сделать, это:

fig, (ax1, ax2) = plt.subplots(1,2,figsize=(10,10))
fig.subplots_adjust(wspace=0.5)
df1.plot(kind = 'barh', ax = ax1)
df2.plot(kind = 'barh', ax = ax2)
plt.show()

Выход: enter image description here

0 голосов
/ 13 ноября 2018

Ваша проблема здесь в том, что fig = plt.figure(figsize=(60,60)) создает вторую фигуру, поэтому, когда вы вызываете fig.subplots_adjust(wspace=10), она изменяет эту вторую фигуру, а не ту, на которой у вас есть оси построения. Чтобы исправить это, сначала включите ключевое слово figsize в свой вызов для подсегментов fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(60, 60), затем удалите вызов для figure внизу и, наконец, отрегулируйте значение wspace.

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