Python 使用altair制作仪表盘

Python 使用altair制作仪表盘,python,altair,Python,Altair,我想使用优秀的altair库来创建仪表盘。有没有办法创建仪表板而不显示任何代码?我在这里看到了一些非常好的例子:但是代码也是可见的。另外,altair最好的(经过良好测试/易于使用)前端是什么?科拉布?Jupyter?任何Altair图表都可以使用chart.save(“filename.HTML”)保存为HTML。如果使用web浏览器打开生成的文件,您将看到没有任何相关Python代码的图表 或者,您可以使用chart.to_json()获取json图表规范,然后可以使用。。。这正是图表导出的

我想使用优秀的altair库来创建仪表盘。有没有办法创建仪表板而不显示任何代码?我在这里看到了一些非常好的例子:但是代码也是可见的。另外,altair最好的(经过良好测试/易于使用)前端是什么?科拉布?Jupyter?

任何Altair图表都可以使用
chart.save(“filename.HTML”)
保存为HTML。如果使用web浏览器打开生成的文件,您将看到没有任何相关Python代码的图表

或者,您可以使用
chart.to_json()
获取json图表规范,然后可以使用。。。这正是
图表导出的页面中所做的操作。保存



至于你的第二个问题(请以后尽量将你的StackOverflow帖子限制为一个问题):Altair与JupyterLab、Jupyter笔记本、CoLab、Interact和Hydrogen一起工作。您可以使用这些前端中的任何一个,尽管有些前端需要一些额外的设置。有关详细信息,请参阅。我使用JupyterLab,并建议从它开始。

除了@jakevdp所建议的,我发现以json格式导出图表定义并在(仍然是beta版)中呈现它非常有用Mike Bostock:图形/交互是用altair生成的,而样板用户界面则是在“反应式”环境中以简单的HTML或javascript轻松添加的(即,当单元格的输入发生变化时,单元格会自动按拓扑顺序重新计算)。代码几乎完全隐藏在那里,同时,你可以利用“计算论文”的思想,这使得Jupyter如此流行。对我来说,创建一个相当复杂和干净的UI/仪表板比使用Jupyter+小部件更容易,而且由于
altair
,无需手动编写“复杂”图表。

除了创建独立的HTML文件和使用vega嵌入,altair还与常见的仪表板包兼容,如Panel,流线型灯光和短跑。我为以下每一项提供了一个简单的示例:

面板 面板既可以在笔记本电脑中使用,也可以作为独立的仪表板使用。它还允许您在单个HTML文件中嵌入仪表板

将altair导入为alt
从vega_数据集导入数据
作为pn导入面板
从panel.interact导入interact
pn.扩展(“织女星”)
cars=data.cars()
def散点图(x列):
chart=alt.chart(汽车)。标记_点()。编码(
x=x_列,
y='位移')
回报表
交互(散点图,x列=汽车。选择数据类型(“数字”)。列)

流线型 Streamlit的目标是尽可能接近常规Python脚本,而不必关注前端编程

从织女星数据集导入数据
导入streamlit作为st
将牵牛星导入为alt
cars=data.cars()
x_column=st.selectbox('Select x-axis column',cars.Select_dtypes('number')。columns)
chart=alt.chart(汽车)。标记_点()。编码(
x=x_列,
y='位移')
圣牛郎星图表(图表,使用容器宽度=真)

猛冲 Dash比其他两个更冗长,因为它要求您明确了解前端和回调中的许多事情(这也提供了更细粒度的控制)。Altair图形没有特定的对象,因此我们将HTML绘图插入iframe()

将altair导入为alt
从vega_数据集导入数据
导入破折号
将dash_html_组件导入为html
将仪表板核心组件作为dcc导入
从dash.dependencies导入输入,输出
cars=data.cars()
#安装应用程序和布局/前端
app=dash.dash(名称,外部样式表=['https://codepen.io/chriddyp/pen/bWLwgP.css'])
app.layout=html.Div([
dcc.下拉列表(
id='x_column-widget',
value='Miles_/u galler',#在第一页加载时显示绘图所需
options=[{'label':col,'value':col}表示cars.columns中的col],
Iframe(
id='scatter',
样式={'border-width':'0','width':'100%,'height':'400px'})])
#设置回调/后端
@app.callback(
输出('scatter','srcDoc'),
输入('x_column-widget','value'))
def plot_牵牛星(x_列):
chart=alt.chart(汽车)。标记_点()。编码(
x=x_列,
y='位移',
工具提示=“马力”).interactive()
返回chart.to_html()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run_服务器(debug=True)