Как центрировать заголовок на сгруппированной гистограмме с помощью альтаира - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь центрировать заголовок на сгруппированной гистограмме.

Читая docs (), я подумал, что смогу сделать это, указав параметры orient и anchor в методе configure_title.

Однако, похоже, это не работает для меня. Я попробовал несколько значений для параметра привязки, но похоже, что он не применяется и придерживается значения по умолчанию.

Что-то мне не хватает?

Я работаю с версией 2.4.1 altair.

import altair as alt
import pandas as pd


# dataset
df = pd.DataFrame([[1, 'A', 'G1'],
                   [2, 'A', 'G2'],
                   [5, 'B', 'G1'],
                   [10, 'B', 'G2'],
                   [4, 'C', 'G1'],
                   [9, 'C', 'G2'],
                   [1, 'D', 'G1'],
                   [1, 'D', 'G2'],
                   [4, 'E', 'G1'],
                   [9, 'E', 'G2'],
                   [8, 'F', 'G1'],
                   [1, 'F', 'G2'],
                   [2, 'G', 'G1'],
                   [3, 'G', 'G2'],
                   [2, 'H', 'G1'],
                   [1, 'H', 'G2'],
                   [3, 'I', 'G1'],
                   [8, 'I', 'G2'],
                   [7, 'J', 'G1'],
                   [5, 'J', 'G2'],
                  ], columns=['Count', 'Category', 'Group'])


chart = alt.Chart(df, title=f"Count of categories in each group",
         width=50, height=600).mark_bar().encode(   column=alt.Column('Category:O'),
                                                    color=alt.Color('Group', type='nominal', scale=alt.Scale(range=['#1f77b4', '#2ca02c'])),
                                                    x=alt.X(field="Group", type="nominal",
                                                            axis=None,
                                                            title="Category",
                                                           ),
                                                    y=alt.Y(field="Count", type="quantitative",
                                                            axis=alt.Axis(title="Number of records",
                                                                          titlePadding=10.0),
                                                           ),
)
chart = chart.configure_title(fontSize=20, offset=5, orient='top', anchor='middle')

# display the chart
chart

Chart with the title top left instead of top middle

Заголовок остается вверху слева, а не вверху посередине.

1 Ответ

1 голос
/ 15 апреля 2019

Это проблема в Vega-Lite 2, которая была исправлена ​​в Vega-Lite 3. После обновления до Altair версии 3 она должна работать, как и ожидалось, без каких-либо изменений в вашем коде: enter image description here

...