Сохранение постоянной высоты столбца подзаголовка, если высота подзаголовка различна - PullRequest
0 голосов
/ 30 ноября 2018

Можно ли иметь субплот выше, чем другие субплоты, чтобы освободить место для меток тика оси X, но высота гистограммы внутри должна быть такой же, как высота столбца в более коротких субплотах?Когда я добавляю параметр высоты в df.plot (), я получаю «TypeError: () получил несколько значений для ключевого аргумента 'высота'".Вот мой код:

from collections import OrderedDict

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd


data = OrderedDict()
data['Test Break'] = [0.1, 0.5, np.nan]
data['No Break']   = [0.9, 0.5, np.nan]
data['Not Tested'] = [0.0, 0.0, 1.0000]
index = ['Very very long name ' + str(x+1) for x in range(len(data))]
df = pd.DataFrame(data=data, index=index)

num_plots = 2
rows = num_plots + 1
cols = 1
layout = (rows, cols)

red, green, grey = '#FF0000', '#00FF00', '#888888'
light_grey = '#AAAAAA'

fig = plt.figure()
fig.set_size_inches(6, 3)

for z in range(num_plots):
    is_last = z == num_plots - 1
    rowspan = 2 if is_last else 1
    ax = plt.subplot2grid(layout, (z, 0), rowspan=rowspan)
    df.plot(ax=ax, kind='bar', stacked=True, yticks=[0,1], legend=False, color=[red, green, grey])
    plt.subplots_adjust(left=0.05, right=0.95, bottom=0.02, top=0.98, hspace=0.5)
    ax.grid(True, which='major', axis='y')
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    ax.spines['bottom'].set_edgecolor(light_grey)
    ax.spines['left'].set_edgecolor(light_grey)
    if not is_last:
        for tick in ax.xaxis.get_major_ticks():
             tick.set_visible(False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...