python - 如何在 Streamlit 上使用 Altair 绘制多个 Y 轴?
问题描述
我想知道如何在 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)
上面的示例返回以下错误:
SchemaValidationError:无效规范 altair.vegalite.v4.schema.core.FacetedEncoding->0,验证“类型”[{“类型”:“定量”,“字段”:“年龄”},{“类型”:“定量” , '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)
推荐阅读
- mysql - SQL 中的特殊字符:'≥' 符号在我的 SQL 表中的行中被保存为 '=' 符号
- javascript - 如何从数组中删除特定元素
- python - 如果函数不起作用,可能是错误的变量?(初学者)
- javascript - 为什么在映射条目上运行时,解构是由 [] 而不是 {}
- android - 如何去除关于棱镜的闪屏
- android - 在线性布局中以相等的边距对齐按钮
- java - 双精度在不同语言中是不同的
- amazon-web-services - 在仪表板 AWS CloudWatch 指标中按一个维度过滤
- excel - 如何从电子表格中删除不一致的文本范围
- javascript - 在 jQuery 数据表中调用 ajax 时没有得到响应