import {
Chart,
ChartAxis,
ChartGroup,
ChartLabel,
ChartLegend,
ChartLine,
ChartVoronoiContainer
} from '@patternfly/react-charts/victory';
interface PetData {
name?: string;
x?: string;
y?: number;
symbol?: { type: string };
}
export const ChartLegendLinks: React.FunctionComponent = () => {
// Custom legend label component
const LegendLabel = ({ _datum, ...rest }) => (
);
// Custom legend component
const getLegend = (legendData) => } />;
const legendData: PetData[] = [
{ name: 'Cats' },
{ name: 'Dogs', symbol: { type: 'dash' } },
{ name: 'Birds' },
{ name: 'Mice' }
];
const data1: PetData[] = [
{ name: 'Cats', x: '2015', y: 1 },
{ name: 'Cats', x: '2016', y: 2 },
{ name: 'Cats', x: '2017', y: 5 },
{ name: 'Cats', x: '2018', y: 3 }
];
const data2: PetData[] = [
{ name: 'Dogs', x: '2015', y: 2 },
{ name: 'Dogs', x: '2016', y: 1 },
{ name: 'Dogs', x: '2017', y: 7 },
{ name: 'Dogs', x: '2018', y: 4 }
];
const data3: PetData[] = [
{ name: 'Birds', x: '2015', y: 3 },
{ name: 'Birds', x: '2016', y: 4 },
{ name: 'Birds', x: '2017', y: 9 },
{ name: 'Birds', x: '2018', y: 5 }
];
const data4: PetData[] = [
{ name: 'Mice', x: '2015', y: 3 },
{ name: 'Mice', x: '2016', y: 3 },
{ name: 'Mice', x: '2017', y: 8 },
{ name: 'Mice', x: '2018', y: 7 }
];
return (
`${datum.name}: ${datum.y}`}
constrainToVisibleArea
/>
}
legendComponent={getLegend([{ name: 'Cats' }, { name: 'Dogs' }, { name: 'Birds' }, { name: 'Mice' }])}
legendData={legendData}
legendPosition="bottom"
height={275}
maxDomain={{ y: 10 }}
minDomain={{ y: 0 }}
name="chart8"
padding={{
bottom: 75, // Adjusted to accommodate legend
left: 50,
right: 50,
top: 50
}}
width={450}
>
} />
}
/>
);
};