我有一张burn缩的图表,显示轴和轴上其余物体的日期。 有时,我拥有大量的“停滞”数据(X-amount时间未完成任何物体)。 停滞的数据正在超强,观众对线图的终端部分更感兴趣。 鉴于两个已知日期,是否有办法压缩一系列轴心日期?
有了更多的数据,但这里是一个快速可再生的例子(也使用上游)。
import datetime
import streamlit as st
import altair as alt
import pandas as pd
x_values = [datetime.date(2022, 1, 7), datetime.date(2022, 1, 28), datetime.date(2022, 1, 29), datetime.date(2022, 1, 30), datetime.date(2022, 1, 31), datetime.date(2022, 2, 1), datetime.date(2022, 2, 2), datetime.date(2022, 2, 3), datetime.date(2022, 2, 4), datetime.date(2022, 2, 5), datetime.date(2022, 2, 6), datetime.date(2022, 2, 7), datetime.date(2022, 2, 8), datetime.date(2022, 2, 9), datetime.date(2022, 2, 10), datetime.date(2022, 2, 11), datetime.date(2022, 2, 12),datetime.date(2022, 12, 8), datetime.date(2023, 8, 20), datetime.date(2023, 8, 21), datetime.date(2023, 8, 22), datetime.date(2023, 8, 23), datetime.date(2023, 8, 24), datetime.date(2023, 8, 25), datetime.date(2023, 8, 26), datetime.date(2023, 8, 27), datetime.date(2023, 8, 28), datetime.date(2023, 8, 29), datetime.date(2023, 8, 30), datetime.date(2023, 8, 31), datetime.date(2023, 9, 1), datetime.date(2023, 9, 2), datetime.date(2023, 9, 3), datetime.date(2023, 9, 4), datetime.date(2023, 9, 5), datetime.date(2023, 9, 6), datetime.date(2023, 9, 7), datetime.date(2023, 9, 8), datetime.date(2023, 9, 9)]
y_values = [3521, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 1808.695652173913, 1417.391304347826, 1417.391304347826, 1417.391304347826, 1026.086956521739, 634.782608695652, 243.47826086956502, 0]
# Burndown line graph
line_data = pd.DataFrame({ x : x_values, y : y_values})
chart_width = 400
chart_height = 600
line_chart = alt.Chart(line_data).mark_line().encode(
x=alt.X( x:T , axis=alt.Axis(title= Date , grid=True, ticks=True, tickCount=12,
format= %Y-%m-%d , labelAngle=-45, tickColor= pink , tickSize=10, tickWidth=3)),
y=alt.Y( y:Q , axis=alt.Axis(title= Tiles ))
)
st.altair_chart(line_chart, use_container_width=True)