下面是使用Altair库创建使用双轴和日期时间x轴制作区间选择折线图的示例代码:
import altair as alt
import pandas as pd
# 创建示例数据
data = pd.DataFrame({
'date': pd.date_range(start='2022-01-01', periods=10, freq='D'),
'value1': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
'value2': [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
})
# 创建区间选择器
selection = alt.selection(type='interval', encodings=['x'])
# 创建折线图
line = alt.Chart(data).mark_line().encode(
x=alt.X('date:T', axis=alt.Axis(title='日期')),
y=alt.Y('value1:Q', axis=alt.Axis(title='值1')),
color=alt.value('blue')
).properties(
width=600,
height=300
)
# 创建第二个y轴的折线图
line2 = alt.Chart(data).mark_line().encode(
x=alt.X('date:T', axis=alt.Axis(title='日期')),
y=alt.Y('value2:Q', axis=alt.Axis(title='值2')),
color=alt.value('red')
)
# 组合两个折线图
chart = alt.layer(line, line2).add_selection(selection)
# 显示图表
chart.show()
这段代码首先使用pandas库创建了一个包含日期和值的示例数据。然后使用Altair库创建了一个区间选择器,以便用户可以选择日期范围。
接下来,使用mark_line()创建了两个折线图,分别代表值1和值2。使用encode()方法指定x轴为日期,y轴为值1和值2,并设置相应的轴标题和颜色。
然后,使用properties()方法设置图表的宽度和高度。
最后,使用layer()方法将两个折线图组合在一起,并使用add_selection()方法添加区间选择器。最后调用show()方法显示图表。
运行代码后,将会显示一个带有双轴和日期时间x轴的区间选择折线图。用户可以通过选择日期范围来查看不同的数据。