如何在 Streamlit 上使用 Altair 绘制多个 Y 轴?
How to plot multiple Y axis using Altair on Streamlit?
我想知道如何在 Streamlit 上使用 Altair 绘制多个 Y 轴。
import pandas as pd
import numpy as np
import altair as alt
import streamlit as st
df = pd.DataFrame({
'name': ['brian', 'dominik', 'patricia'],
'age': [20, 30, 40],
'salary': [1000, 2000, 3000]
})
c = alt.Chart(df).mark_area().encode(
x='name', y=['age', 'salary'])
st.altair_chart(c, use_container_width=True)
上面的例子returns出现如下错误:
SchemaValidationError: 无效规范 altair.vegalite.v4.schema.core.FacetedEncoding->0,正在验证 'type' [{'type': 'quantitative', 'field': 'age'}, {'type': 'quantitative', 'field': 'salary'}] 不是类型 'object'
我找到了如何使用 layer 自己做:
df = pd.DataFrame({
'name': ['brian', 'dominik', 'patricia'],
'age': [20, 30, 40],
'salary': [100, 200, 300]
})
a = alt.Chart(df).mark_area(opacity=1).encode(
x='name', y='age')
b = alt.Chart(df).mark_area(opacity=0.6).encode(
x='name', y='salary')
c = alt.layer(a, b)
st.altair_chart(c, use_container_width=True)
我想知道如何在 Streamlit 上使用 Altair 绘制多个 Y 轴。
import pandas as pd
import numpy as np
import altair as alt
import streamlit as st
df = pd.DataFrame({
'name': ['brian', 'dominik', 'patricia'],
'age': [20, 30, 40],
'salary': [1000, 2000, 3000]
})
c = alt.Chart(df).mark_area().encode(
x='name', y=['age', 'salary'])
st.altair_chart(c, use_container_width=True)
上面的例子returns出现如下错误:
SchemaValidationError: 无效规范 altair.vegalite.v4.schema.core.FacetedEncoding->0,正在验证 'type' [{'type': 'quantitative', 'field': 'age'}, {'type': 'quantitative', 'field': 'salary'}] 不是类型 'object'
我找到了如何使用 layer 自己做:
df = pd.DataFrame({
'name': ['brian', 'dominik', 'patricia'],
'age': [20, 30, 40],
'salary': [100, 200, 300]
})
a = alt.Chart(df).mark_area(opacity=1).encode(
x='name', y='age')
b = alt.Chart(df).mark_area(opacity=0.6).encode(
x='name', y='salary')
c = alt.layer(a, b)
st.altair_chart(c, use_container_width=True)