Reputation: 76
Does anyone have suggestions to avoid the error?
ValueError: Faceted charts cannot be layered.
With this Pandas Dataframe
| 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 |
I do a bar chart of the percentages, including text on the bars with this code:
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)
What makes a chart faceted and how can I avoid this error?
Upvotes: 3
Views: 1093
Reputation: 49064
A faceted chart is one where you use column
, row
, or .facet
to create multiple subplots of your data. See the docs for more details. In your specific case, you can try to layer first and then facet:
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')
Upvotes: 2