如何使用 Python Altair 将 x 轴和 y 轴的交点从 0 移动到 1?
How to shift intersection point of x- and y-axis from 0 to 1 using Python Altair?
我有一个仪表板,您可以在其中使用小部件 select 多个数据集。我在 Python 中使用 Altair 库从这些数据集制作经典线图,x 轴和 y 轴都从零开始。显示的数据是归一化数据,这意味着根据定义,所有数据集都从 y 值 = 1 开始。由于数据集表示不同的参数,因此 y 轴会随着数据集的不同而动态变化。该图的编码大致如下:
chart = alt.Chart(df_datapoints).mark_line().encode(
x=alt.X('X-Value',axis=alt.Axis(title='X-Values', tickCount=10)),
y=alt.Y('Y-Value', axis=alt.Axis(title='Normalized to Baseline')),
color=alt.Color('Test ID', legend=None)
)
图表看起来像这样:
现在我想让 x 轴从 y 值 = 1 开始,以便更好地查看哪些值从起点增加或减少。是否可以将这个简单折线图中 x 轴的起点从 0 移到 1?
我没有在 Altair 文档中找到任何内容。
或者是否可以在 Y=1 处添加一条强线以查看归一化基线?
一种方法是使用 axis.offset
属性,它以像素为单位控制轴的偏移。如果您希望轴在特定数据点相交,则必须根据数据范围进行调整:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'x': [0, 1, 2, 3, 4],
'y': [0, 1, 2, 3, 4],
})
alt.Chart(df).mark_line().encode(
x=alt.X('x', axis=alt.Axis(grid=False, offset=-75)),
y=alt.Y('y', axis=alt.Axis(grid=False, offset=-100))
)
我有一个仪表板,您可以在其中使用小部件 select 多个数据集。我在 Python 中使用 Altair 库从这些数据集制作经典线图,x 轴和 y 轴都从零开始。显示的数据是归一化数据,这意味着根据定义,所有数据集都从 y 值 = 1 开始。由于数据集表示不同的参数,因此 y 轴会随着数据集的不同而动态变化。该图的编码大致如下:
chart = alt.Chart(df_datapoints).mark_line().encode(
x=alt.X('X-Value',axis=alt.Axis(title='X-Values', tickCount=10)),
y=alt.Y('Y-Value', axis=alt.Axis(title='Normalized to Baseline')),
color=alt.Color('Test ID', legend=None)
)
图表看起来像这样:
现在我想让 x 轴从 y 值 = 1 开始,以便更好地查看哪些值从起点增加或减少。是否可以将这个简单折线图中 x 轴的起点从 0 移到 1? 我没有在 Altair 文档中找到任何内容。 或者是否可以在 Y=1 处添加一条强线以查看归一化基线?
一种方法是使用 axis.offset
属性,它以像素为单位控制轴的偏移。如果您希望轴在特定数据点相交,则必须根据数据范围进行调整:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'x': [0, 1, 2, 3, 4],
'y': [0, 1, 2, 3, 4],
})
alt.Chart(df).mark_line().encode(
x=alt.X('x', axis=alt.Axis(grid=False, offset=-75)),
y=alt.Y('y', axis=alt.Axis(grid=False, offset=-100))
)