【问题标题】:Bar Chart in Altair: ValueError: Faceted charts cannot be layeredAltair 中的条形图:ValueError:分面图无法分层
【发布时间】:2021-04-29 13:54:00
【问题描述】:

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

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)

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

【问题讨论】:

    标签: python altair


    【解决方案1】:

    多面图是一种使用columnrow.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')
    
    

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 2020-05-12
      相关资源
      最近更新 更多