¡Hola! Como proveedor de lienzo, estoy muy entusiasmado de compartir con usted cómo crear un gráfico circular con lienzo. Canvas es una herramienta increíble que le brinda el poder de dibujar todo tipo de gráficos en su navegador web. Ya sea que sea un analista de datos que busque visualizar algunas estadísticas, un maestro que desee hacer que sus lecciones sean más atractivas, o simplemente alguien a quien le encanta jugar con imágenes geniales, esta guía es para usted.
¿Qué es el lienzo?
En primer lugar, hablemos rápidamente sobre qué es el lienzo. Canvas es un elemento HTML que proporciona una superficie de dibujo para gráficos a través de JavaScript. Es como un lienzo en blanco (juego de palabras) donde puedes crear todo tipo de formas, animaciones y visualizaciones. Es ampliamente compatible con los navegadores modernos, por lo que no tiene que preocuparse por los problemas de compatibilidad.
Empezando
Para comenzar a crear un gráfico circular, necesitará un archivo HTML básico con un elemento de lona. Aquí hay una configuración simple:
<! DocType html> <html lang = "en"> <head> <meta charset = "utf-8"> <meta name = "viewport" content = "width = dispositivo-width, escala inicial = 1.0"> <title> cuidel con lienzo </title> <bead> <body> <canvas id = "mychart" width = "400" 400 " Height = "400"> </ Canvas> <Script> // Su código JavaScript irá aquí </script> </body> </html>
En este código, hemos creado un elemento de lona con unidentificacióndemycharty establece su ancho y altura en 400 píxeles. Ahora, pasemos a la parte de JavaScript.
Acceder al contexto de lienzo
Para recurrir al lienzo, necesitamos obtener su contexto. El contexto es un objeto que proporciona métodos y propiedades para el dibujo. En nuestro caso, usaremos el contexto 2D. Así es como puedes conseguirlo:
const Canvas = document.getElementById ('myChart'); const ctx = canvas.getContext ('2d');
Preparación de datos
Antes de comenzar a dibujar el gráfico circular, necesitamos algunos datos. Digamos que tenemos los siguientes datos que representan las ventas de diferentes productos en una tienda:
const data = [{etiqueta: 'producto A', valor: 20}, {etiqueta: 'producto b', valor: 30}, {etiqueta: 'producto c', valor: 15}, {etiqueta: 'producto d', valor: 35}];
Ángulos calculadores
Para dibujar un gráfico circular, necesitamos calcular los ángulos para cada corte en función de los valores de datos. La suma total de todos los valores se usa para determinar la proporción de cada corte. Aquí está el código para calcular los ángulos:
Sea Total = 0; para (let i = 0; i <data.length; i ++) {total+= data [i] .value; } const angles = []; para (let i = 0; i <data.length; i ++) {const anglein = (data [i] .value / total) * 2 * math.pi; ángulos.push (ángulo); }
Dibujo el gráfico de pastel
Ahora viene la parte divertida: ¡dibujar el gráfico de pasteles! Realizaremos los datos y dibujaremos cada corte utilizando los ángulos calculados. Aquí está el código:
Dejar startangle = 0; const CenterX = Canvas.Width / 2; const centery = Canvas.Height / 2; const radio = Math.min (Canvas.Width, Canvas.Height) / 2; const colores = ['#ff6384', '#36a2eb', '#ffce56', '#4bc0c0']; para (dejar i = 0; i <data.length; i ++) {const endangle = startangle+angles [i]; ctx.beginpath (); CTX.Moveto (CenterX, Centery); ctx.arc (CenterX, Centery, Radius, Startangle, Endangle); ctx.ClosePath (); ctx.fillStyle = Colors [i]; ctx.fill (); startangle = endangle; }
En este código, primero definimos el ángulo inicial, el centro del lienzo y el radio del gráfico circular. Luego, recorremos los datos y dibujamos cada corte utilizando elarcométodo. Configuramos el color de relleno para cada rebanada y lo llenamos.
Agregar etiquetas
Para que la tabla de pastel sea más informativa, podemos agregar etiquetas a cada porción. Así es como puedes hacerlo:
startAngle = 0; para (dejar i = 0; i <data.length; i ++) {const endangle = startangle+angles [i]; const mitangle = startangle + (ángulos [i] / 2); const etiquetas = CenterX + (radio * 0.6) * Math.cos (Midangle); const labry = Centery + (radio * 0.6) * Math.sin (Midangle); ctx.font = '14px arial'; ctx.fillstyle = 'negro'; ctx.textalign = 'Center'; ctx.fillText (datos [i] .label, etiqueta, labry); startangle = endangle; }
En este código, calculamos el punto medio de cada corte y la usamos para colocar la etiqueta. Luego establecemos la fuente, llenamos el color y la alineación del texto, y dibujamos la etiqueta usando elPlegablemétodo.
Usando nuestros productos de lienzo
En nuestra empresa, ofrecemos una amplia gama de productos de lona de alta calidad que se pueden utilizar para diversas aplicaciones. Ya sea que esté creando un gráfico circular simple como el que acabamos de hacer o trabajando en un proyecto más complejo, nuestros productos de lienzo están a la altura de la tarea.
Mira nuestroTela de pato de tela impresa en lienzopara una opción duradera y versátil. Es perfecto para imprimir sus visualizaciones y mostrarlas en un entorno profesional.
Si estás en el campo de la medicina, nuestroTela médica anticorina 100% algodón para uniformees una gran opción. No solo es cómodo sino también resistente al anticorino, lo que lo hace ideal para uniformes.


Y para aquellos que buscan una tela que pueda soportar el blanqueo de cloro, nuestroTC resistente a la tela del hospital de blanqueo de cloroes el camino a seguir. Es perfecto para entornos hospitalarios donde la limpieza es de suma importancia.
Conclusión
Crear un gráfico circular con lienzo es una experiencia divertida y gratificante. Con solo un poco de conocimiento de JavaScript, puede visualizar sus datos de una manera visualmente atractiva. Y si está buscando productos de lona de alta calidad, lo tenemos cubierto.
Si está interesado en nuestros productos de lienzo o tiene alguna pregunta sobre la creación de visualizaciones utilizando lienzo, no dude en comunicarse. Estamos aquí para ayudarlo con todas sus necesidades de lienzo. Ya sea que sea propietario de una pequeña empresa, un estudiante o un profesional, tenemos los productos y la experiencia adecuados para apoyar sus proyectos.
Referencias
- Tutorial de lienzo HTML - Mozilla Developer Network
- JavaScript Basics - W3Schools
