调整 Altair 分组条形图的标签
Adjusting Labels of Altair Grouped Bar Chart
我有这个名为 table
的数据框:
TERM Bitcoin S&P500 Real Estate Gold
0 High-Inflation/ Short term 3097.94 -3700.78 761.23 6512.71
1 High-Inflation/ Mid term — -3080.01 -8434.66 3242.40
2 High-Inflation/ Long term — -2089.25 -9117.96 8174.43
3 Low-Inflation/ Short term 780200.00 -273.71 1824.72 2214.51
4 Low-Inflation/ Mid term 21013600.00 5331.40 35810.58 -2879.37
5 Low-Inflation/ Long term 978017143.00. 15045.41 35895.81 861.90
并使用以下代码生成了图表:
from itertools import product
alt.Chart(table).transform_fold(
["Bitcoin", "S&P500", "Real Estate", "Gold"], as_=["key", "value"]
).mark_bar().encode(
x="key:N",
y=alt.Y("value:Q", scale=alt.Scale(type='symlog'),
axis=alt.Axis(values=[0] + [10**x * y for (x, y) in product(range(1, 10, 1), (1, -0.01))])),
color="key:N",
column="TERM",
)
但是,如您所见,顶部的标签被弄脏了。我不确定如何使它们更具视觉吸引力,以及如何删除每个图表 x 轴上的 key
标签:
您可以通过在 x 编码中设置 title=None
来删除 x 标题。您可以通过用行列表替换它们来为有问题的字符串添加换行符。例如:
table['TERM'] = table['TERM'].str.split(' ', 1)
alt.Chart(table).transform_fold(
["Bitcoin", "S&P500", "Real Estate", "Gold"], as_=["key", "value"]
).mark_bar().encode(
x=alt.X("key:N", title=None),
y=alt.Y("value:Q", scale=alt.Scale(type='symlog'),
axis=alt.Axis(values=[0] + [10**x * y for (x, y) in product(range(1, 10, 1), (1, -0.01))])),
color="key:N",
column="TERM"
)
我有这个名为 table
的数据框:
TERM Bitcoin S&P500 Real Estate Gold
0 High-Inflation/ Short term 3097.94 -3700.78 761.23 6512.71
1 High-Inflation/ Mid term — -3080.01 -8434.66 3242.40
2 High-Inflation/ Long term — -2089.25 -9117.96 8174.43
3 Low-Inflation/ Short term 780200.00 -273.71 1824.72 2214.51
4 Low-Inflation/ Mid term 21013600.00 5331.40 35810.58 -2879.37
5 Low-Inflation/ Long term 978017143.00. 15045.41 35895.81 861.90
并使用以下代码生成了图表:
from itertools import product
alt.Chart(table).transform_fold(
["Bitcoin", "S&P500", "Real Estate", "Gold"], as_=["key", "value"]
).mark_bar().encode(
x="key:N",
y=alt.Y("value:Q", scale=alt.Scale(type='symlog'),
axis=alt.Axis(values=[0] + [10**x * y for (x, y) in product(range(1, 10, 1), (1, -0.01))])),
color="key:N",
column="TERM",
)
但是,如您所见,顶部的标签被弄脏了。我不确定如何使它们更具视觉吸引力,以及如何删除每个图表 x 轴上的 key
标签:
您可以通过在 x 编码中设置 title=None
来删除 x 标题。您可以通过用行列表替换它们来为有问题的字符串添加换行符。例如:
table['TERM'] = table['TERM'].str.split(' ', 1)
alt.Chart(table).transform_fold(
["Bitcoin", "S&P500", "Real Estate", "Gold"], as_=["key", "value"]
).mark_bar().encode(
x=alt.X("key:N", title=None),
y=alt.Y("value:Q", scale=alt.Scale(type='symlog'),
axis=alt.Axis(values=[0] + [10**x * y for (x, y) in product(range(1, 10, 1), (1, -0.01))])),
color="key:N",
column="TERM"
)