Altair 条形图根据数据框列分配特定颜色
Altair bar chart assign specific colors based on dataframe column
我正在使用 Altair 在 Jupyter notebook 中制作甘特图,如所述here。
如何为每项任务分配特定的条形颜色?感谢您的帮助。
Pandas、altair 和 vega 已安装。使用 Windows 10,Python 3.7.6,Conda 4.6.14。
mytaskbars = pd.DataFrame([
{"task": "Task1a", "start": '2020-06-01', "end": '2020-09-30', "color": 'royalblue'},
{"task": "Task1b", "start": '2020-06-01', "end": '2021-03-31', "color": 'deepskyblue'},
{"task": "Task1c", "start": '2020-09-30', "end": '2021-03-31', "color": 'dodgerblue'},
{"task": "Task2", "start": '2020-06-01', "end": '2021-03-31', "color": 'red'},
{"task": "Task3", "start": '2020-06-01', "end": '2021-08-02', "color": 'orange'},
{"task": "Task4", "start": '2020-10-01', "end": '2021-03-31', "color": 'green'},
])
mytaskbars["start"] = pd.to_datetime(mytaskbars["start"])
mytaskbars["end"] = pd.to_datetime(mytaskbars["end"])
chart = alt.Chart(mytaskbars).mark_bar(opacity=0.7).encode(
x=alt.X('start', axis=alt.Axis(title='Date', labelAngle=-45, format = ("%b %Y"))),
x2 = 'end',
y=alt.Y('task', axis=alt.Axis(title=None)),
color = 'color'
)
chart
添加
color=alt.Color('color:N', scale = None)
成功了
我正在使用 Altair 在 Jupyter notebook 中制作甘特图,如所述here。
如何为每项任务分配特定的条形颜色?感谢您的帮助。
Pandas、altair 和 vega 已安装。使用 Windows 10,Python 3.7.6,Conda 4.6.14。
mytaskbars = pd.DataFrame([
{"task": "Task1a", "start": '2020-06-01', "end": '2020-09-30', "color": 'royalblue'},
{"task": "Task1b", "start": '2020-06-01', "end": '2021-03-31', "color": 'deepskyblue'},
{"task": "Task1c", "start": '2020-09-30', "end": '2021-03-31', "color": 'dodgerblue'},
{"task": "Task2", "start": '2020-06-01', "end": '2021-03-31', "color": 'red'},
{"task": "Task3", "start": '2020-06-01', "end": '2021-08-02', "color": 'orange'},
{"task": "Task4", "start": '2020-10-01', "end": '2021-03-31', "color": 'green'},
])
mytaskbars["start"] = pd.to_datetime(mytaskbars["start"])
mytaskbars["end"] = pd.to_datetime(mytaskbars["end"])
chart = alt.Chart(mytaskbars).mark_bar(opacity=0.7).encode(
x=alt.X('start', axis=alt.Axis(title='Date', labelAngle=-45, format = ("%b %Y"))),
x2 = 'end',
y=alt.Y('task', axis=alt.Axis(title=None)),
color = 'color'
)
chart
添加
color=alt.Color('color:N', scale = None)
成功了