【发布时间】:2020-08-23 22:45:20
【问题描述】:
我想画出类似的图表 Stacked bar chart across multiple columns 但它与 R 一起使用,我想使用 Python,希望与 Atair 一起使用。
【问题讨论】:
我想画出类似的图表 Stacked bar chart across multiple columns 但它与 R 一起使用,我想使用 Python,希望与 Atair 一起使用。
【问题讨论】:
听起来您拥有宽格式数据,您需要将其转换为长格式数据(请参阅 Altair 文档中的 Long Form vs. Wide Form data)。
处理此问题的一种便捷方法是使用Fold Transform。例如:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'label': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
'value1': [1, 3, 2, 4, 5, 6, 4],
'value2': [2, 1, 2, 5, 3, 4, 2],
})
alt.Chart(df).transform_fold(
['value1', 'value2'],
as_=['column', 'value']
).mark_bar().encode(
x='label:N',
y='value:Q',
color='column:N'
)
【讨论】:
jsonschema 软件包版本不兼容(请参阅 github.com/altair-viz/altair/issues/2496)。您要么需要将altair 更新到最新版本(4.2 或更高版本),要么需要将jsonschema 降级到版本3.X。