много поисков не дали рабочего решения проблемы python matplotlib. Я уверен, что упускаю что-то простое ...
MWE:
import pandas as pd
import matplotlib.pyplot as plt
#MWE plot
T = [1, 2, 3, 4, 5, 6]
n = len(T)
d1 = list(zip([500]*n, [250]*n))
d2 = list(zip([250]*n, [125]*n))
df1 = pd.DataFrame(data=d1, index=T)
df2 = pd.DataFrame(data=d2, index=T)
fig = plt.figure()
ax = fig.add_subplot(111)
df1.plot(kind='bar', stacked=True, align='edge', width=-0.4, ax=ax)
df2.plot(kind='bar', stacked=True, align='edge', width=0.4, ax=ax)
plt.show()
Генерирует: Смещенный график
Независимо от того, какие параметры Я играюсь с тем, что первый бар обрезается слева. Если я строю только один столбец (то есть не кластеры столбцов), столбцы не обрезаются, и фактически с обеих сторон есть хорошее ровное пространство.
Я жестко закодировал данные для этого MWE; однако я пытаюсь найти общий способ c для обеспечения правильного выравнивания, поскольку я, скорее всего, произведу МНОЖЕСТВО этих графиков с различным количеством элементов на оси x и, возможно, различным количеством столбцов в каждом кластере.
Как мне сместить столбцы так, чтобы они правильно располагались по оси x с ровным пробелом?