Я занимаюсь байесовским моделированием в pymc3 и хотел бы построить апостериорное распределение с помощью plot_posterior (которое поставляется из пакета arviz). Получившийся график неуклюже смещен по горизонтальной оси, и я хотел бы сместить его так, чтобы он был нанесен точно между -3 и +3. К сожалению, я не могу понять, что я должен передать функции, чтобы указать это.
В документации для arviz.plot_posterior указывается, что аргумент "координаты" имеет определение "Координаты отображаемых переменных. Передано в Dataset.sel". Предположительно, это то, что мне нужно, чтобы указать диапазон для горизонтальной оси, но это не так. не говорите, какую ценность он ожидает.
Я проверил документацию для Dataset.sel, и в нем говорится, что первый аргумент, который он ожидает, это «Диктовка с ключами, совпадающими с размерами и значениями, заданными скалярами, срезами или массивами меток тиков». Моя интерпретация этого заключается в том, что ключи - это строки, соответствующие имени (ам) переменной (ей), а значения представляют собой некоторую итеративную структуру отметок.
Моя переменная называется 'm' и была создана из следующего кода:
with pymc3.Model() as m1:
m = pymc3.Normal('m', mu = 0, sigma = 1)
obs = pymc3.Normal('obs', mu = m, sigma = 1, observed = numpy.random.randn(3))
trace = pymc3.sample(1000, tune = 500, cores = 1)
Мое предположение о том, что plot_posterior ожидает, это:
plot_posterior(trace, coords = {'m': [-3.0, -2,0, -1,0, 0.0, 1.0, 2.0, 3.0]})
Это дало мне ошибку "Ошибка значения: измерения или многоиндексные уровни ['m'] не существуют"
Предположительно, я на правильном пути, но я просто не могу найти более точное определение того, какие аргументы нужны этой функции. Спасибо за любую помощь, вы можете предоставить.
edit: я работал над расширением самих осей (хитрость - ax = mpl.pyplot.axes (xlim = (-3.0, 3.0))), но я до сих пор не знаю, как расширить графики самой переменной.