• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

248
Views
no se puede mostrar el recuento en el gráfico de barras (gráfico svg)

Actualmente estoy trabajando en un gráfico de barras apilado usando solo svg, html y css y no se usa ninguna biblioteca de terceros para esto.

Consulte este codepen https://codepen.io/a166617/pen/qBXvzQd

Según el gráfico de barras apiladas, los datos se muestran correctamente pero no se muestra el recuento de cada barra.

los datos utilizados para este gráfico de barras apiladas son los siguientes

 const data = [ { name: 'Transit', passed: 2, skipped: 5, failed: 22, untested: 0 }, { name: 'Access', passed: 0, skipped: 0, failed: 0, untested: 100 } ];

Según estos datos, estoy tratando de mostrar el conteo 2 (para passed ), 5 (para skipped ), 22 (para failed ) y 100 (para untested )

¿Puede alguien decirme cómo mostrar estos recuentos en sus respectivos gráficos de barras? Para que quede claro, quiero mostrar el recuento en el gráfico de barras similar al que se muestra en la siguiente captura de pantalla

ingrese la descripción de la imagen aquí

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Simplemente agregue un elemento <text> a su grupo de barras.

 return ( <g key={Math.random()}> <rect width={50} height={`${height}%`} fill={bar.color} x={60} // multiply with the width (50) + 10 for space y={`${y}%`} /> <text x={70} // visible centre point of your bar y={`${y + height/2}%`} dy="1.3em" // adjusts the text y position to adjust for // text descenders. Makes the vertical centring // more accurate. Normally 0.3 to -0.35, but has // an extra ~1em because of the 180deg rotate. textAnchor="middle" // centre the text horizontall at x class="bar-label" // styling for this text >{`${bar.value}%`}</text> </g> );
 .bar-label { fill: white; font-size: 10px; transform-box: fill-box; transform: rotateX(180deg); }

Este cambio se complica un poco por el hecho de que ha girado sus SVG de barra 180 grados. Eso hace que el texto esté al revés. Así que tengo que voltear cada elemento <text> de vuelta a la posición vertical.

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error