Example #1
0
            arcs: pie(data).map(arc => {
                const angle = Math.abs(arc.endAngle - arc.startAngle)

                return {
                    ...arc,
                    angle,
                    angleDeg: radiansToDegrees(angle),
                }
            }),
Example #2
0
        const labels = indices.map((index, i) => {
            const position = positionFromAngle(angles[i], radius + labelOffset)
            const textAnchor = textAnchorFromAngle(angles[i])

            return {
                id: index,
                angle: radiansToDegrees(angles[i]),
                anchor: textAnchor,
                ...position,
            }
        })
Example #3
0
File: props.js Project: plouc/nivo
            label: PropTypes.string.isRequired,
            fill: PropTypes.string.isRequired,
        })
    ).isRequired,
    */
}

export const PieDefaultProps = {
    sortByValue: false,
    innerRadius: 0,
    padAngle: 0,
    cornerRadius: 0,

    // layout
    startAngle: 0,
    endAngle: radiansToDegrees(Math.PI * 2),
    fit: true,

    // border
    borderWidth: 0,
    borderColor: {
        from: 'color',
        modifiers: [['darker', 1]],
    },

    // radial labels
    enableRadialLabels: true,
    radialLabel: 'id',
    radialLabelsTextColor: { theme: 'labels.text.fill' },
    radialLabelsLinkColor: { theme: 'axis.ticks.line.stroke' },
Example #4
0
const textAnchorFromAngle = _angle => {
    const angle = radiansToDegrees(_angle) + 90
    if (angle <= 10 || angle >= 350 || (angle >= 170 && angle <= 190)) return 'middle'
    if (angle > 180) return 'end'
    return 'start'
}