根据从 Altair 条形图中的数据库收到的数据更改标签
Change labels from data received from database in Altair bar graph
我正在尝试根据从数据库收到的数据编辑标签。截至目前,我已尝试使用 .transform_fold() 但是当我 运行 我的代码出现时,正确的标题出现但图表上没有显示数据。
在没有 .transform_fold() 的情况下,图表如下所示:
并像以下一样使用 .transform_fold():
我想像这样更改标题:
title from data
New title
audiobook_processed
Audiobooks processed
n_known_errors
Known Errors
n_unknown_errors
Unknown Errors
我收到的数据是这样的:
date
value
name
2022-01-19
98
audiobook_processed
2022-01-19
69
n_known_errors
2022-01-19
2
n_unknown_errors
我的代码:
import altair as alt
import streamlit as st
import pandas as pd
import datetime
from xxx.input import get_xxx_metrics
def graph_visual_data():
data = get_xxx_metrics('audiobook')
data = data[data.name.isin(['audiobook_processed', 'n_unknown_errors', 'n_known_errors'])][['date','value','name']]
data.date = data.date.dt.date
data.value = data.value.astype(int)
data = data.groupby(['date','name'], as_index=False).sum()
fig = (alt.Chart(data).transform_fold(
fold=['Audiobooks processed', 'Known Errors','Unknown Errors'],
as_=['name', 'value']).mark_bar(size=15).encode(
x=alt.X('date:T', axis=alt.Axis(format='%b %-d'), scale=alt.Scale(padding=15), title='Dates processed on'),
y=alt.Y('value', title='Total amount'),
color=alt.Color('name', title='Audiobooks processed and errors', sort=['audiobook_processed']),
tooltip=['name', 'value', 'date']).properties(width=500))
st.altair_chart(fig)
您可以通过在构建图表之前替换 pandas 数据框中的值来做到这一点:
data['name'] = data['name'].replace({
'audiobook_processed': 'Audiobook processed',
'n_unknown_errors': 'Unknown Errors',
'n_known_errors': 'Known Errors',
})
然后跳过transform_fold
,因为这里不适用。
我正在尝试根据从数据库收到的数据编辑标签。截至目前,我已尝试使用 .transform_fold() 但是当我 运行 我的代码出现时,正确的标题出现但图表上没有显示数据。
在没有 .transform_fold() 的情况下,图表如下所示:
并像以下一样使用 .transform_fold():
我想像这样更改标题:
title from data | New title |
---|---|
audiobook_processed | Audiobooks processed |
n_known_errors | Known Errors |
n_unknown_errors | Unknown Errors |
我收到的数据是这样的:
date | value | name |
---|---|---|
2022-01-19 | 98 | audiobook_processed |
2022-01-19 | 69 | n_known_errors |
2022-01-19 | 2 | n_unknown_errors |
我的代码:
import altair as alt
import streamlit as st
import pandas as pd
import datetime
from xxx.input import get_xxx_metrics
def graph_visual_data():
data = get_xxx_metrics('audiobook')
data = data[data.name.isin(['audiobook_processed', 'n_unknown_errors', 'n_known_errors'])][['date','value','name']]
data.date = data.date.dt.date
data.value = data.value.astype(int)
data = data.groupby(['date','name'], as_index=False).sum()
fig = (alt.Chart(data).transform_fold(
fold=['Audiobooks processed', 'Known Errors','Unknown Errors'],
as_=['name', 'value']).mark_bar(size=15).encode(
x=alt.X('date:T', axis=alt.Axis(format='%b %-d'), scale=alt.Scale(padding=15), title='Dates processed on'),
y=alt.Y('value', title='Total amount'),
color=alt.Color('name', title='Audiobooks processed and errors', sort=['audiobook_processed']),
tooltip=['name', 'value', 'date']).properties(width=500))
st.altair_chart(fig)
您可以通过在构建图表之前替换 pandas 数据框中的值来做到这一点:
data['name'] = data['name'].replace({
'audiobook_processed': 'Audiobook processed',
'n_unknown_errors': 'Unknown Errors',
'n_known_errors': 'Known Errors',
})
然后跳过transform_fold
,因为这里不适用。