我正在尝试绘制具有年份时间序列(x 轴)和total_vchrs(y)的客户端 id 的分面图
client_id year total_vchrs
0 1564931 2021 4.00
1 2013493 2021 0.00
2 1587580 2021 1.00
3 2259014 2021 0.00
4 2293939 2021 0.00
...
数据看起来很简单。
client_id object
year int64
total_vchrs float64
dtype: object
代码是透明的。
chart = alt.Chart(melted_df).mark_bar().encode(
x=alt.X('year:O', title='Year'),
y=alt.Y('total_vchrs:Q', title='Total Vouchers'),
#color=alt.Color('client_id:N', title='Client ID'),
facet=alt.Facet('client_id:N', columns=1, title='Client ID')
).properties(
width=600,
height=100,
title="Total vouchers Over Time by Client ID"
)
chart
但是结果就是不开心的方脸:
我需要做什么来解决这个问题?
这是由于您正在创建许多方面以及每个方面的 siE(因此在某种程度上与绘制的图表的总面积相关)。您可以通过增加和减少数据帧中的观测值数量 (500) 和每个图表的高度 (10) 来尝试使用以下代码:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'client_id': [random.randint(0, 11111) for x in range(500)]
})
alt.Chart(df).mark_bar().encode(
facet=alt.Facet('client_id:N', columns=1, title='Client ID')
).properties(
height=10,
)
我对浏览器如何处理图形了解不够,无法准确说出正在发生的事情,但我相信悲伤的表情表明某些渲染过程崩溃了。您可以尝试不同的浏览器,看看它们之间是否有不同。