Donut chart issues with empty segments
Provide a general summary of the issue here
When rendering segment labels on a donut chart, there are several issues if all segments have a value of 0.
๐ค Expected Behavior?
- No
NaNs displayed - No overlapping labels (or potentially no labels shown at all)
- Potentially some sort of fallback behavior
๐ฏ Current Behavior
Several rendering problems with the chart:
๐ Possible Solution
Falling back to a "No data found" label would be fine:
Alternatively, an empty donut chart would work nicely:
๐ฆ Context
No response
๐ฅ๏ธ Steps to Reproduce
Visit the CodeSandbox here
Ensure that all data points have a value of 0, and show percentage and value labels on a donut chart:
import {
Chart,
ChartPopover,
ChartTooltip,
Legend,
} from "@adobe/react-spectrum-charts";
import {
Donut,
DonutSummary,
SegmentLabel,
} from "@adobe/react-spectrum-charts/rc";
import { defaultTheme, Provider } from "@adobe/react-spectrum";
export default function App() {
return (
<Provider theme={defaultTheme} height="100%">
<div className="App">
<Chart
colorScheme="dark"
data={[
{
browser: "Chrome",
count: 0,
},
{
browser: "Firefox",
count: 0,
},
]}
height={350}
width={400}
>
<Donut color="browser" holeRatio={0.8} metric="count">
<ChartTooltip />
<ChartPopover width="auto" />
<DonutSummary label="Visitors" />
<SegmentLabel percent value />
</Donut>
<Legend highlight isToggleable position="right" title="Browsers" />
</Chart>
</div>
</Provider>
);
}
Version
1.11.1
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
MacOS
๐งข Your Company/Team
AJO B2B
๐ท Tracking Issue
No response
The proposed solution is to use a light gray (gray-200 or similar) ring as the donut and to display the value in the center as 0. Also we will drop all direct labels.
@marshallpete @kylekarpack I am willing to work on this issue!
@Sid-80 sounds good. Please review the Contribution Guidelines and the Developer Docs before you get started.