python - Altair 中的条形图 : ValueError: Faceted charts cannot be layered

标签 python altair

有人有避免错误的建议吗?

ValueError:分面图表无法分层。

使用这个 Pandas 数据框

|  Lab  |    FieldName               |MissingItemCnt    |     WorkItemCnt       |PercentMissing|    
| ----- |    ------------------      |------------------|   ------------------  | ----------   |    
|PQR LAB|                      MC ADO|               0  |                 1     |   0.00       |
|PQR LAB|                     MC Link|               0  |                 1     |   0.00       |
|PQR LAB|     HW Received or Expected|               1  |                 1     |   100.00     |
|PQR LAB|        Requested Start Date|               0  |                 1     |   0.00       |
|PQR LAB|          Requested End Date|               0  |                 1     |   0.00       |
|PQR LAB|         Targeted Start Date|               0  |                 1     |   0.00       |
|PQR LAB|           Targeted End Date|               0  |                 1     |   0.00       |
|PQR LAB|          Projected End Date|               0  |                 1     |   0.00       |
|PQR LAB|           Actual Start Date|               1  |                 1     |   100.00     |
|PQR LAB|             Actual End Date|               1  |                 1     |   100.00     |
|PQR LAB|                Signoff Date|               1  |                 1     |   100.00     |
|PQR LAB|                Duration End|               1  |                 1     |   100.00     |
|PQR LAB|            Duration SignOff|               1  |                 1     |   100.00     |
|PQR LAB|            HW Recieved Date|               1  |                 1     |   100.00     |
|PQR LAB|                        Tags|               0  |                 1     |   0.00       |
|RED LAB|                      MC ADO|               13 |                 137   |   9.49       |
|RED LAB|                     MC Link|               13 |                 137   |   9.49       |
|RED LAB|     HW Received or Expected|               18 |                 137   |   13.14      |
|RED LAB|        Requested Start Date|               3  |                 137   |   2.19       |
|RED LAB|          Requested End Date|               4  |                 137   |   2.92       |
|RED LAB|         Targeted Start Date|               6  |                 137   |   4.38       |
|RED LAB|           Targeted End Date|               7  |                 137   |   5.11       |
|RED LAB|          Projected End Date|               113|                 137   |   82.48      |
|RED LAB|           Actual Start Date|               20 |                 137   |   14.60      |
|RED LAB|             Actual End Date|               25 |                 137   |   18.25      |
|RED LAB|                Signoff Date|               28 |                 137   |   20.44      |
|RED LAB|                Duration End|               25 |                 137   |   18.25      |
|RED LAB|            Duration SignOff|               28 |                 137   |   20.44      |
|RED LAB|            HW Recieved Date|               32 |                 137   |   23.36      |
|RED LAB|                        Tags|               89 |                 137   |   64.96      |
                                                     

我制作了百分比条形图,包括带有以下代码的条形图:

bars =  alt.Chart(outer_join_df).mark_bar().encode(
    #x='PercentMissing:Q',
    #alt.X('PercentOfTotal:Q', axis=alt.Axis(format='.0%')),
    alt.Y('PercentMissing:Q'),
    x='Lab Location:O',
    color='Lab Location:N',
    column='FieldName:N'
)

text = bars.mark_text(
    align='left',
    baseline='middle',
    dx=3  # Nudges text to right so it doesn't appear on top of the bar
).encode(
    text='PercentMissing:Q'
)
(bars + text).properties(height=900)

是什么使图表具有多面性以及如何避免此错误?

最佳答案

多面图表是一种使用.facet来创建数据的多个子图的图表。 See the docs for more details 。根据您的具体情况,您可以尝试先分层,然后再分面:

bars =  alt.Chart(outer_join_df).mark_bar().encode(
    alt.Y('PercentMissing:Q'),
    x='Lab Location:O',
    color='Lab Location:N',
)

text = bars.mark_text(
    align='left',
    baseline='middle',
    dx=3  # Nudges text to right so it doesn't appear on top of the bar
).encode(
    text='PercentMissing:Q'
)

(bars + text).properties(height=900).facet(column='FieldName:N')

关于python - Altair 中的条形图 : ValueError: Faceted charts cannot be layered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67318821/

相关文章:

python - 当我们用逻辑运算符返回时,Python 返回什么?

python - Altair 中的平行坐标

python - 如何在 Altair 中调整比例范围?

Python:如何连接蓝牙设备? (Linux)

python - Altair 无法访问文件系统以在 Google Colab 上渲染大型数据集

python - 更改 Jupyter 笔记本中 Altair 图渲染的大小

python - Altair/Vega-Lite 条形图 : filter top K bars from aggregated field

python - 使用 numpy 将范围设置为零

python - Theano 中的 allow_input_downcast 是做什么的?

javascript - 如何从 HTML 页面中的按钮执行 python 脚本